[INFO] cloning repository https://github.com/ba-lindner/turtle
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/ba-lindner/turtle" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fba-lindner%2Fturtle", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fba-lindner%2Fturtle'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 46ac4abbb76d3e4bc44c4575a481b55cd4d2d041
[INFO] fixing ba-lindner/turtle against try#622891a4e29178280638a6b63a8908bde2c0c854+cargoflags=-Zfix-edition=start=2015 for pr-157817-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fba-lindner%2Fturtle" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/ba-lindner/turtle
[INFO] finished tweaking git repo https://github.com/ba-lindner/turtle
[INFO] tweaked toml for git repo https://github.com/ba-lindner/turtle written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/ba-lindner/turtle on toolchain 622891a4e29178280638a6b63a8908bde2c0c854
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/ba-lindner/turtle already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded cmake v0.1.54
[INFO] [stderr]   Downloaded cfg-if v1.0.1
[INFO] [stderr]   Downloaded cc v1.2.27
[INFO] [stderr]   Downloaded http-range-header v0.4.2
[INFO] [stderr]   Downloaded anstyle-wincon v3.0.9
[INFO] [stderr]   Downloaded anstyle-query v1.1.3
[INFO] [stderr]   Downloaded anstyle v1.0.11
[INFO] [stderr]   Downloaded clap_lex v0.7.5
[INFO] [stderr]   Downloaded once_cell_polyfill v1.70.1
[INFO] [stderr]   Downloaded rustc-demangle v0.1.25
[INFO] [stderr]   Downloaded lock_api v0.4.13
[INFO] [stderr]   Downloaded anstream v0.6.19
[INFO] [stderr]   Downloaded axum-core v0.5.2
[INFO] [stderr]   Downloaded redox_syscall v0.5.13
[INFO] [stderr]   Downloaded rustversion v1.0.21
[INFO] [stderr]   Downloaded slab v0.4.10
[INFO] [stderr]   Downloaded clap_derive v4.5.40
[INFO] [stderr]   Downloaded parking_lot_core v0.9.11
[INFO] [stderr]   Downloaded unicase v2.8.1
[INFO] [stderr]   Downloaded getrandom v0.3.3
[INFO] [stderr]   Downloaded tracing-core v0.1.34
[INFO] [stderr]   Downloaded axum-macros v0.5.0
[INFO] [stderr]   Downloaded anyhow v1.0.98
[INFO] [stderr]   Downloaded clap v4.5.40
[INFO] [stderr]   Downloaded parking_lot v0.12.4
[INFO] [stderr]   Downloaded uuid v1.17.0
[INFO] [stderr]   Downloaded rand v0.9.1
[INFO] [stderr]   Downloaded bitflags v2.9.1
[INFO] [stderr]   Downloaded bumpalo v3.19.0
[INFO] [stderr]   Downloaded backtrace v0.3.75
[INFO] [stderr]   Downloaded memchr v2.7.5
[INFO] [stderr]   Downloaded zerocopy-derive v0.8.26
[INFO] [stderr]   Downloaded hyper-util v0.1.14
[INFO] [stderr]   Downloaded tokio-util v0.7.15
[INFO] [stderr]   Downloaded tower-http v0.6.6
[INFO] [stderr]   Downloaded mio v1.0.4
[INFO] [stderr]   Downloaded axum v0.8.4
[INFO] [stderr]   Downloaded clap_builder v4.5.40
[INFO] [stderr]   Downloaded zerocopy v0.8.26
[INFO] [stderr]   Downloaded libc v0.2.174
[INFO] [stderr]   Downloaded tokio v1.45.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3a6becf2bc8dde7f3fa57ede90e4f284e72d296796fc446bbb1e2c7cc0530151" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 19a17e209a3ea58def3894be83c26a63e429c9292bd2b9a8293235f6d6194807
[INFO] running `Command { std: "docker" "start" "19a17e209a3ea58def3894be83c26a63e429c9292bd2b9a8293235f6d6194807", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "19a17e209a3ea58def3894be83c26a63e429c9292bd2b9a8293235f6d6194807" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "19a17e209a3ea58def3894be83c26a63e429c9292bd2b9a8293235f6d6194807", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=" "-e" "RUSTDOCFLAGS=" "-w" "/opt/rustwide/workdir" "--user" "0:0" "19a17e209a3ea58def3894be83c26a63e429c9292bd2b9a8293235f6d6194807" "/opt/rustwide/cargo-home/bin/cargo" "+622891a4e29178280638a6b63a8908bde2c0c854" "fix" "--allow-no-vcs" "--allow-dirty" "--frozen" "--all" "--all-targets" "--message-format=json" "-Zfix-edition=start=2015", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.95
[INFO] [stderr]    Compiling unicode-ident v1.0.18
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]     Checking pin-project-lite v0.2.16
[INFO] [stderr]     Checking cfg-if v1.0.1
[INFO] [stderr]     Checking bytes v1.10.1
[INFO] [stderr]     Checking itoa v1.0.15
[INFO] [stderr]    Compiling cc v1.2.27
[INFO] [stderr]    Compiling getrandom v0.3.3
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]    Compiling zerocopy v0.8.26
[INFO] [stderr]     Checking memchr v2.7.5
[INFO] [stderr]    Compiling version-compare v0.1.1
[INFO] [stderr]     Checking futures-channel v0.3.31
[INFO] [stderr]     Checking futures-io v0.3.31
[INFO] [stderr]     Checking slab v0.4.10
[INFO] [stderr]     Checking utf8parse v0.2.2
[INFO] [stderr]     Checking futures-task v0.3.31
[INFO] [stderr]     Checking once_cell v1.21.3
[INFO] [stderr]    Compiling lock_api v0.4.13
[INFO] [stderr]     Checking anstyle-parse v0.2.7
[INFO] [stderr]     Checking http v1.3.1
[INFO] [stderr]     Checking tracing-core v0.1.34
[INFO] [stderr]     Checking log v0.4.27
[INFO] [stderr]    Compiling parking_lot_core v0.9.11
[INFO] [stderr]    Compiling serde v1.0.219
[INFO] [stderr]     Checking is_terminal_polyfill v1.70.1
[INFO] [stderr]    Compiling quote v1.0.40
[INFO] [stderr]    Compiling cmake v0.1.54
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]     Checking colorchoice v1.0.4
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking anstyle-query v1.1.3
[INFO] [stderr]     Checking anstyle v1.0.11
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking rand_core v0.9.3
[INFO] [stderr]    Compiling heck v0.5.0
[INFO] [stderr]     Checking clap_lex v0.7.5
[INFO] [stderr]     Checking strsim v0.11.1
[INFO] [stderr]    Compiling thiserror v2.0.12
[INFO] [stderr]     Checking anstream v0.6.19
[INFO] [stderr]    Compiling sdl2 v0.37.0
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]     Checking clap_builder v4.5.40
[INFO] [stderr]     Checking bitflags v1.3.2
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]     Checking hashbrown v0.15.4
[INFO] [stderr]     Checking tower-service v0.3.3
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]     Checking tracing v0.1.41
[INFO] [stderr]    Compiling sdl2-sys v0.37.0
[INFO] [stderr]     Checking tower-layer v0.3.3
[INFO] [stderr]    Compiling unicase v2.8.1
[INFO] [stderr]     Checking turtle-examples v0.1.0 (/opt/rustwide/workdir/examples)
[INFO] [stderr]    Compiling rustversion v1.0.21
[INFO] [stderr]    Compiling mime_guess v2.0.5
[INFO] [stderr]     Checking indexmap v2.10.0
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]     Checking ryu v1.0.20
[INFO] [stderr]    Compiling serde_json v1.0.140
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]     Checking overload v0.1.1
[INFO] [stderr]    Compiling anyhow v1.0.98
[INFO] [stderr]     Checking nu-ansi-term v0.46.0
[INFO] [stderr]     Checking sharded-slab v0.1.7
[INFO] [stderr]     Checking rand_chacha v0.9.0
[INFO] [stderr]     Checking tracing-log v0.2.0
[INFO] [stderr]     Checking rand v0.9.1
[INFO] [stderr]     Checking axum-core v0.5.2
[INFO] [stderr]     Checking thread_local v1.1.9
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]     Checking matchit v0.8.4
[INFO] [stderr]     Checking http-range-header v0.4.2
[INFO] [stderr]     Checking tracing-subscriber v0.3.19
[INFO] [stderr]    Compiling futures-macro v0.3.31
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling clap_derive v4.5.40
[INFO] [stderr]    Compiling thiserror-impl v2.0.12
[INFO] [stderr]    Compiling axum-macros v0.5.0
[INFO] [stderr]     Checking tokio v1.45.1
[INFO] [stderr]     Checking futures-util v0.3.31
[INFO] [stderr]     Checking clap v4.5.40
[INFO] [stderr]     Checking futures-executor v0.3.31
[INFO] [stderr]     Checking futures v0.3.31
[INFO] [stderr]     Checking hyper v1.6.0
[INFO] [stderr]     Checking tokio-util v0.7.15
[INFO] [stderr]     Checking tower v0.5.2
[INFO] [stderr]     Checking tower-http v0.6.6
[INFO] [stderr]     Checking serde_path_to_error v0.1.17
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking uuid v1.17.0
[INFO] [stderr]     Checking hyper-util v0.1.14
[INFO] [stderr]     Checking axum v0.8.4
[INFO] [stderr]     Checking turtle v0.3.2 (/opt/rustwide/workdir)
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:111:68
[INFO] [stdout]     |
[INFO] [stdout] 111 |                 let _ = self.action.send((DbgAction::BlockEntered, block.begin));
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^ expected `FilePos`, found `Span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:111:68
[INFO] [stdout]     |
[INFO] [stdout] 111 |                 let _ = self.action.send((DbgAction::BlockEntered, block.begin));
[INFO] [stdout]     |                                                                    ^^^^^^^^^^^ expected `FilePos`, found `Span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_start` found for reference `&pos::Spanned<tokens::statements::Statement>` in the current scope
[INFO] [stdout]    --> src/debugger/task.rs:115:38
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 self.curr_pos = stmt.get_start();
[INFO] [stdout]     |                                      ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `get_span` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 115 -                 self.curr_pos = stmt.get_start();
[INFO] [stdout] 115 +                 self.curr_pos = stmt.get_span();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_start` found for reference `&pos::Spanned<tokens::statements::Statement>` in the current scope
[INFO] [stdout]    --> src/debugger/task.rs:115:38
[INFO] [stdout]     |
[INFO] [stdout] 115 |                 self.curr_pos = stmt.get_start();
[INFO] [stdout]     |                                      ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `get_span` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 115 -                 self.curr_pos = stmt.get_start();
[INFO] [stdout] 115 +                 self.curr_pos = stmt.get_span();
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:194:31
[INFO] [stdout]     |
[INFO] [stdout] 194 |                     curr_pos: path.body.begin,
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^ expected `FilePos`, found `Span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:194:31
[INFO] [stdout]     |
[INFO] [stdout] 194 |                     curr_pos: path.body.begin,
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^ expected `FilePos`, found `Span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `kind` on type `&tokens::expr::Expr`
[INFO] [stdout]    --> src/debugger/task.rs:289:25
[INFO] [stdout]     |
[INFO] [stdout] 289 |             match &expr.kind {
[INFO] [stdout]     |                         ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available field is: `0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `kind` on type `&tokens::expr::Expr`
[INFO] [stdout]    --> src/debugger/task.rs:289:25
[INFO] [stdout]     |
[INFO] [stdout] 289 |             match &expr.kind {
[INFO] [stdout]     |                         ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available field is: `0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:291:88
[INFO] [stdout]     |
[INFO] [stdout] 291 |                 ExprKind::Variable(var) => self.turtle.borrow_mut().get_var(&self.ctx, var),
[INFO] [stdout]     |                                                                     -------            ^^^ expected `&Variable`, found `Variable`
[INFO] [stdout]     |                                                                     |
[INFO] [stdout]     |                                                                     arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/debugger/turtle.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout] 121 |     pub fn get_var(&mut self, ctx: &GlobalCtx<impl Window>, var: &Variable) -> Value {
[INFO] [stdout]     |            ^^^^^^^                                          --------------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 291 |                 ExprKind::Variable(var) => self.turtle.borrow_mut().get_var(&self.ctx, &var),
[INFO] [stdout]     |                                                                                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:293:45
[INFO] [stdout]     |
[INFO] [stdout] 293 |                     let lhs = self.dbg_expr(lhs).await;
[INFO] [stdout]     |                                    -------- ^^^ expected `&Expr`, found `Box<Expr>`
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&tokens::expr::Expr`
[INFO] [stdout]                   found struct `Box<tokens::expr::Expr>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/debugger/task.rs:287:25
[INFO] [stdout]     |
[INFO] [stdout] 287 |     pub(super) async fn dbg_expr(&mut self, expr: &Expr) -> Value {
[INFO] [stdout]     |                         ^^^^^^^^            -----------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 293 |                     let lhs = self.dbg_expr(&lhs).await;
[INFO] [stdout]     |                                             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:291:88
[INFO] [stdout]     |
[INFO] [stdout] 291 |                 ExprKind::Variable(var) => self.turtle.borrow_mut().get_var(&self.ctx, var),
[INFO] [stdout]     |                                                                     -------            ^^^ expected `&Variable`, found `Variable`
[INFO] [stdout]     |                                                                     |
[INFO] [stdout]     |                                                                     arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/debugger/turtle.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout] 121 |     pub fn get_var(&mut self, ctx: &GlobalCtx<impl Window>, var: &Variable) -> Value {
[INFO] [stdout]     |            ^^^^^^^                                          --------------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 291 |                 ExprKind::Variable(var) => self.turtle.borrow_mut().get_var(&self.ctx, &var),
[INFO] [stdout]     |                                                                                        +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:293:45
[INFO] [stdout]     |
[INFO] [stdout] 293 |                     let lhs = self.dbg_expr(lhs).await;
[INFO] [stdout]     |                                    -------- ^^^ expected `&Expr`, found `Box<Expr>`
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&tokens::expr::Expr`
[INFO] [stdout]                   found struct `Box<tokens::expr::Expr>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/debugger/task.rs:287:25
[INFO] [stdout]     |
[INFO] [stdout] 287 |     pub(super) async fn dbg_expr(&mut self, expr: &Expr) -> Value {
[INFO] [stdout]     |                         ^^^^^^^^            -----------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 293 |                     let lhs = self.dbg_expr(&lhs).await;
[INFO] [stdout]     |                                             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:294:45
[INFO] [stdout]     |
[INFO] [stdout] 294 |                     let rhs = self.dbg_expr(rhs).await;
[INFO] [stdout]     |                                    -------- ^^^ expected `&Expr`, found `Box<Expr>`
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&tokens::expr::Expr`
[INFO] [stdout]                   found struct `Box<tokens::expr::Expr>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/debugger/task.rs:287:25
[INFO] [stdout]     |
[INFO] [stdout] 287 |     pub(super) async fn dbg_expr(&mut self, expr: &Expr) -> Value {
[INFO] [stdout]     |                         ^^^^^^^^            -----------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 294 |                     let rhs = self.dbg_expr(&rhs).await;
[INFO] [stdout]     |                                             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:294:45
[INFO] [stdout]     |
[INFO] [stdout] 294 |                     let rhs = self.dbg_expr(rhs).await;
[INFO] [stdout]     |                                    -------- ^^^ expected `&Expr`, found `Box<Expr>`
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&tokens::expr::Expr`
[INFO] [stdout]                   found struct `Box<tokens::expr::Expr>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/debugger/task.rs:287:25
[INFO] [stdout]     |
[INFO] [stdout] 287 |     pub(super) async fn dbg_expr(&mut self, expr: &Expr) -> Value {
[INFO] [stdout]     |                         ^^^^^^^^            -----------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 294 |                     let rhs = self.dbg_expr(&rhs).await;
[INFO] [stdout]     |                                             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:298:45
[INFO] [stdout]     |
[INFO] [stdout] 298 |                     let val = self.dbg_expr(expr).await;
[INFO] [stdout]     |                                    -------- ^^^^ expected `&Expr`, found `Box<Expr>`
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&tokens::expr::Expr`
[INFO] [stdout]                   found struct `Box<tokens::expr::Expr>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/debugger/task.rs:287:25
[INFO] [stdout]     |
[INFO] [stdout] 287 |     pub(super) async fn dbg_expr(&mut self, expr: &Expr) -> Value {
[INFO] [stdout]     |                         ^^^^^^^^            -----------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 298 |                     let val = self.dbg_expr(&expr).await;
[INFO] [stdout]     |                                             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:298:45
[INFO] [stdout]     |
[INFO] [stdout] 298 |                     let val = self.dbg_expr(expr).await;
[INFO] [stdout]     |                                    -------- ^^^^ expected `&Expr`, found `Box<Expr>`
[INFO] [stdout]     |                                    |
[INFO] [stdout]     |                                    arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&tokens::expr::Expr`
[INFO] [stdout]                   found struct `Box<tokens::expr::Expr>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/debugger/task.rs:287:25
[INFO] [stdout]     |
[INFO] [stdout] 287 |     pub(super) async fn dbg_expr(&mut self, expr: &Expr) -> Value {
[INFO] [stdout]     |                         ^^^^^^^^            -----------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 298 |                     let val = self.dbg_expr(&expr).await;
[INFO] [stdout]     |                                             +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:301:73
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 ExprKind::Absolute(expr) => Value::Number(self.dbg_expr(expr).await.num().abs()),
[INFO] [stdout]     |                                                                -------- ^^^^ expected `&Expr`, found `Box<Expr>`
[INFO] [stdout]     |                                                                |
[INFO] [stdout]     |                                                                arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&tokens::expr::Expr`
[INFO] [stdout]                   found struct `Box<tokens::expr::Expr>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/debugger/task.rs:287:25
[INFO] [stdout]     |
[INFO] [stdout] 287 |     pub(super) async fn dbg_expr(&mut self, expr: &Expr) -> Value {
[INFO] [stdout]     |                         ^^^^^^^^            -----------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 ExprKind::Absolute(expr) => Value::Number(self.dbg_expr(&expr).await.num().abs()),
[INFO] [stdout]     |                                                                         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:301:73
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 ExprKind::Absolute(expr) => Value::Number(self.dbg_expr(expr).await.num().abs()),
[INFO] [stdout]     |                                                                -------- ^^^^ expected `&Expr`, found `Box<Expr>`
[INFO] [stdout]     |                                                                |
[INFO] [stdout]     |                                                                arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&tokens::expr::Expr`
[INFO] [stdout]                   found struct `Box<tokens::expr::Expr>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/debugger/task.rs:287:25
[INFO] [stdout]     |
[INFO] [stdout] 287 |     pub(super) async fn dbg_expr(&mut self, expr: &Expr) -> Value {
[INFO] [stdout]     |                         ^^^^^^^^            -----------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 301 |                 ExprKind::Absolute(expr) => Value::Number(self.dbg_expr(&expr).await.num().abs()),
[INFO] [stdout]     |                                                                         +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:302:58
[INFO] [stdout]     |
[INFO] [stdout] 302 |                 ExprKind::Bracket(expr) => self.dbg_expr(expr).await,
[INFO] [stdout]     |                                                 -------- ^^^^ expected `&Expr`, found `Box<Expr>`
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&tokens::expr::Expr`
[INFO] [stdout]                   found struct `Box<tokens::expr::Expr>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/debugger/task.rs:287:25
[INFO] [stdout]     |
[INFO] [stdout] 287 |     pub(super) async fn dbg_expr(&mut self, expr: &Expr) -> Value {
[INFO] [stdout]     |                         ^^^^^^^^            -----------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 302 |                 ExprKind::Bracket(expr) => self.dbg_expr(&expr).await,
[INFO] [stdout]     |                                                          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:302:58
[INFO] [stdout]     |
[INFO] [stdout] 302 |                 ExprKind::Bracket(expr) => self.dbg_expr(expr).await,
[INFO] [stdout]     |                                                 -------- ^^^^ expected `&Expr`, found `Box<Expr>`
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&tokens::expr::Expr`
[INFO] [stdout]                   found struct `Box<tokens::expr::Expr>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/debugger/task.rs:287:25
[INFO] [stdout]     |
[INFO] [stdout] 287 |     pub(super) async fn dbg_expr(&mut self, expr: &Expr) -> Value {
[INFO] [stdout]     |                         ^^^^^^^^            -----------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 302 |                 ExprKind::Bracket(expr) => self.dbg_expr(&expr).await,
[INFO] [stdout]     |                                                          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:303:62
[INFO] [stdout]     |
[INFO] [stdout] 303 |                 ExprKind::Convert(from, to) => self.dbg_expr(from).await.convert(*to),
[INFO] [stdout]     |                                                     -------- ^^^^ expected `&Expr`, found `Box<Expr>`
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&tokens::expr::Expr`
[INFO] [stdout]                   found struct `Box<tokens::expr::Expr>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/debugger/task.rs:287:25
[INFO] [stdout]     |
[INFO] [stdout] 287 |     pub(super) async fn dbg_expr(&mut self, expr: &Expr) -> Value {
[INFO] [stdout]     |                         ^^^^^^^^            -----------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 303 |                 ExprKind::Convert(from, to) => self.dbg_expr(&from).await.convert(*to),
[INFO] [stdout]     |                                                              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:303:62
[INFO] [stdout]     |
[INFO] [stdout] 303 |                 ExprKind::Convert(from, to) => self.dbg_expr(from).await.convert(*to),
[INFO] [stdout]     |                                                     -------- ^^^^ expected `&Expr`, found `Box<Expr>`
[INFO] [stdout]     |                                                     |
[INFO] [stdout]     |                                                     arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&tokens::expr::Expr`
[INFO] [stdout]                   found struct `Box<tokens::expr::Expr>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/debugger/task.rs:287:25
[INFO] [stdout]     |
[INFO] [stdout] 287 |     pub(super) async fn dbg_expr(&mut self, expr: &Expr) -> Value {
[INFO] [stdout]     |                         ^^^^^^^^            -----------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 303 |                 ExprKind::Convert(from, to) => self.dbg_expr(&from).await.convert(*to),
[INFO] [stdout]     |                                                              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `values::ValType` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/task.rs:303:82
[INFO] [stdout]     |
[INFO] [stdout] 303 |                 ExprKind::Convert(from, to) => self.dbg_expr(from).await.convert(*to),
[INFO] [stdout]     |                                                                                  ^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `values::ValType` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/task.rs:303:82
[INFO] [stdout]     |
[INFO] [stdout] 303 |                 ExprKind::Convert(from, to) => self.dbg_expr(from).await.convert(*to),
[INFO] [stdout]     |                                                                                  ^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:304:74
[INFO] [stdout]     |
[INFO] [stdout] 304 |                 ExprKind::FuncCall(pdf, args) => pdf.eval(&self.dbg_args(args).await),
[INFO] [stdout]     |                                                                 -------- ^^^^ expected `&[Expr]`, found `Vec<Expr>`
[INFO] [stdout]     |                                                                 |
[INFO] [stdout]     |                                                                 arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&[tokens::expr::Expr]`
[INFO] [stdout]                   found struct `Vec<tokens::expr::Expr>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/debugger/task.rs:332:14
[INFO] [stdout]     |
[INFO] [stdout] 332 |     async fn dbg_args(&mut self, args: &[Expr]) -> Vec<Value> {
[INFO] [stdout]     |              ^^^^^^^^            -------------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 304 |                 ExprKind::FuncCall(pdf, args) => pdf.eval(&self.dbg_args(&args).await),
[INFO] [stdout]     |                                                                          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:304:74
[INFO] [stdout]     |
[INFO] [stdout] 304 |                 ExprKind::FuncCall(pdf, args) => pdf.eval(&self.dbg_args(args).await),
[INFO] [stdout]     |                                                                 -------- ^^^^ expected `&[Expr]`, found `Vec<Expr>`
[INFO] [stdout]     |                                                                 |
[INFO] [stdout]     |                                                                 arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&[tokens::expr::Expr]`
[INFO] [stdout]                   found struct `Vec<tokens::expr::Expr>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/debugger/task.rs:332:14
[INFO] [stdout]     |
[INFO] [stdout] 332 |     async fn dbg_args(&mut self, args: &[Expr]) -> Vec<Value> {
[INFO] [stdout]     |              ^^^^^^^^            -------------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 304 |                 ExprKind::FuncCall(pdf, args) => pdf.eval(&self.dbg_args(&args).await),
[INFO] [stdout]     |                                                                          +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `usize` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/task.rs:308:35
[INFO] [stdout]     |
[INFO] [stdout] 308 |                         .get_calc(*id)
[INFO] [stdout]     |                                   ^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `usize` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/task.rs:308:35
[INFO] [stdout]     |
[INFO] [stdout] 308 |                         .get_calc(*id)
[INFO] [stdout]     |                                   ^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:310:46
[INFO] [stdout]     |
[INFO] [stdout] 310 |                     let args = self.dbg_args(args).await;
[INFO] [stdout]     |                                     -------- ^^^^ expected `&[Expr]`, found `Vec<Expr>`
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&[tokens::expr::Expr]`
[INFO] [stdout]                   found struct `Vec<tokens::expr::Expr>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/debugger/task.rs:332:14
[INFO] [stdout]     |
[INFO] [stdout] 332 |     async fn dbg_args(&mut self, args: &[Expr]) -> Vec<Value> {
[INFO] [stdout]     |              ^^^^^^^^            -------------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 310 |                     let args = self.dbg_args(&args).await;
[INFO] [stdout]     |                                              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:310:46
[INFO] [stdout]     |
[INFO] [stdout] 310 |                     let args = self.dbg_args(args).await;
[INFO] [stdout]     |                                     -------- ^^^^ expected `&[Expr]`, found `Vec<Expr>`
[INFO] [stdout]     |                                     |
[INFO] [stdout]     |                                     arguments to this method are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected reference `&[tokens::expr::Expr]`
[INFO] [stdout]                   found struct `Vec<tokens::expr::Expr>`
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/debugger/task.rs:332:14
[INFO] [stdout]     |
[INFO] [stdout] 332 |     async fn dbg_args(&mut self, args: &[Expr]) -> Vec<Value> {
[INFO] [stdout]     |              ^^^^^^^^            -------------
[INFO] [stdout] help: consider borrowing here
[INFO] [stdout]     |
[INFO] [stdout] 310 |                     let args = self.dbg_args(&args).await;
[INFO] [stdout]     |                                              +
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `usize` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/task.rs:318:46
[INFO] [stdout]     |
[INFO] [stdout] 318 |                         func: FuncType::Calc(*id),
[INFO] [stdout]     |                                              ^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `usize` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/task.rs:318:46
[INFO] [stdout]     |
[INFO] [stdout] 318 |                         func: FuncType::Calc(*id),
[INFO] [stdout]     |                                              ^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:319:35
[INFO] [stdout]     |
[INFO] [stdout] 319 |                         curr_pos: calc.body.begin,
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^ expected `FilePos`, found `Span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/task.rs:319:35
[INFO] [stdout]     |
[INFO] [stdout] 319 |                         curr_pos: calc.body.begin,
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^ expected `FilePos`, found `Span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `UndefLocals` found for enum `ProgError` in the current scope
[INFO] [stdout]    --> src/debugger/controller.rs:409:28
[INFO] [stdout]     |
[INFO] [stdout] 409 |             Err(ProgError::UndefLocals(
[INFO] [stdout]     |                            ^^^^^^^^^^^ variant, associated function, or constant not found in `ProgError`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:67:1
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub enum ProgError {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `UndefLocals` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `UndefLocals` found for enum `ProgError` in the current scope
[INFO] [stdout]    --> src/debugger/controller.rs:409:28
[INFO] [stdout]     |
[INFO] [stdout] 409 |             Err(ProgError::UndefLocals(
[INFO] [stdout]     |                            ^^^^^^^^^^^ variant, associated function, or constant not found in `ProgError`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:67:1
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub enum ProgError {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `UndefLocals` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `UndefGlobals` found for enum `ProgError` in the current scope
[INFO] [stdout]    --> src/debugger/controller.rs:414:28
[INFO] [stdout]     |
[INFO] [stdout] 414 |             Err(ProgError::UndefGlobals(semcheck::collect_undef(
[INFO] [stdout]     |                            ^^^^^^^^^^^^ variant, associated function, or constant not found in `ProgError`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:67:1
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub enum ProgError {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `UndefGlobals` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `UndefGlobals` found for enum `ProgError` in the current scope
[INFO] [stdout]    --> src/debugger/controller.rs:414:28
[INFO] [stdout]     |
[INFO] [stdout] 414 |             Err(ProgError::UndefGlobals(semcheck::collect_undef(
[INFO] [stdout]     |                            ^^^^^^^^^^^^ variant, associated function, or constant not found in `ProgError`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:67:1
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub enum ProgError {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `UndefGlobals` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `TurtleError`
[INFO] [stdout]    --> src/debugger/controller.rs:423:73
[INFO] [stdout]     |
[INFO] [stdout] 423 |         let mut expr = self.prog.with_parser(expr, |p| Ok(p.parse_expr()?))?;
[INFO] [stdout]     |                                                             ------------^ the trait `From<Vec<pos::Spanned<ParseError>>>` is not implemented for `TurtleError`
[INFO] [stdout]     |                                                             |
[INFO] [stdout]     |                                                             this can't be annotated with `?` because it has type `Result<_, Vec<pos::Spanned<ParseError>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: `TurtleError` needs to implement `From<Vec<pos::Spanned<ParseError>>>`
[INFO] [stdout]    --> src/lib.rs:53:1
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub enum TurtleError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<Vec<pos::Spanned<ParseError>>>` is not implemented for `TurtleError`
[INFO] [stdout]       but trait `From<std::io::Error>` is implemented for it
[INFO] [stdout]    --> src/lib.rs:55:13
[INFO] [stdout]     |
[INFO] [stdout]  55 |     IOError(#[from] std::io::Error),
[INFO] [stdout]     |             ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `std::io::Error`, found `Vec<pos::Spanned<ParseError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `TurtleError`
[INFO] [stdout]    --> src/debugger/controller.rs:423:73
[INFO] [stdout]     |
[INFO] [stdout] 423 |         let mut expr = self.prog.with_parser(expr, |p| Ok(p.parse_expr()?))?;
[INFO] [stdout]     |                                                             ------------^ the trait `From<Vec<pos::Spanned<ParseError>>>` is not implemented for `TurtleError`
[INFO] [stdout]     |                                                             |
[INFO] [stdout]     |                                                             this can't be annotated with `?` because it has type `Result<_, Vec<pos::Spanned<ParseError>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: `TurtleError` needs to implement `From<Vec<pos::Spanned<ParseError>>>`
[INFO] [stdout]    --> src/lib.rs:53:1
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub enum TurtleError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<Vec<pos::Spanned<ParseError>>>` is not implemented for `TurtleError`
[INFO] [stdout]       but trait `From<std::io::Error>` is implemented for it
[INFO] [stdout]    --> src/lib.rs:55:13
[INFO] [stdout]     |
[INFO] [stdout]  55 |     IOError(#[from] std::io::Error),
[INFO] [stdout]     |             ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `std::io::Error`, found `Vec<pos::Spanned<ParseError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `DebugErr`
[INFO] [stdout]    --> src/debugger/controller.rs:423:76
[INFO] [stdout]     |
[INFO] [stdout] 423 |         let mut expr = self.prog.with_parser(expr, |p| Ok(p.parse_expr()?))?;
[INFO] [stdout]     |                                  ------------------------------------------^ the trait `From<TurtleError>` is not implemented for `DebugErr`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this can't be annotated with `?` because it has type `Result<_, TurtleError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `DebugErr` needs to implement `From<TurtleError>`
[INFO] [stdout]    --> src/debugger/mod.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum DebugErr {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<TurtleError>` is not implemented for `DebugErr`
[INFO] [stdout]       but trait `From<ProgError>` is implemented for it
[INFO] [stdout]    --> src/debugger/mod.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |     TurtleError(#[from] ProgError),
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `ProgError`, found `TurtleError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `DebugErr`
[INFO] [stdout]    --> src/debugger/controller.rs:423:76
[INFO] [stdout]     |
[INFO] [stdout] 423 |         let mut expr = self.prog.with_parser(expr, |p| Ok(p.parse_expr()?))?;
[INFO] [stdout]     |                                  ------------------------------------------^ the trait `From<TurtleError>` is not implemented for `DebugErr`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this can't be annotated with `?` because it has type `Result<_, TurtleError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `DebugErr` needs to implement `From<TurtleError>`
[INFO] [stdout]    --> src/debugger/mod.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum DebugErr {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<TurtleError>` is not implemented for `DebugErr`
[INFO] [stdout]       but trait `From<ProgError>` is implemented for it
[INFO] [stdout]    --> src/debugger/mod.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |     TurtleError(#[from] ProgError),
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `ProgError`, found `TurtleError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `DebugErr`
[INFO] [stdout]    --> src/debugger/controller.rs:428:48
[INFO] [stdout]     |
[INFO] [stdout] 428 |         let (_, vars) = expr.val_type(&mut ctx)?;
[INFO] [stdout]     |                              ------------------^ the trait `From<Vec<pos::Spanned<TypeError>>>` is not implemented for `DebugErr`
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              this can't be annotated with `?` because it has type `Result<_, Vec<pos::Spanned<TypeError>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: `DebugErr` needs to implement `From<Vec<pos::Spanned<TypeError>>>`
[INFO] [stdout]    --> src/debugger/mod.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum DebugErr {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<Vec<pos::Spanned<TypeError>>>` is not implemented for `DebugErr`
[INFO] [stdout]       but trait `From<ProgError>` is implemented for it
[INFO] [stdout]    --> src/debugger/mod.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |     TurtleError(#[from] ProgError),
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `ProgError`, found `Vec<pos::Spanned<TypeError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `DebugErr`
[INFO] [stdout]    --> src/debugger/controller.rs:428:48
[INFO] [stdout]     |
[INFO] [stdout] 428 |         let (_, vars) = expr.val_type(&mut ctx)?;
[INFO] [stdout]     |                              ------------------^ the trait `From<Vec<pos::Spanned<TypeError>>>` is not implemented for `DebugErr`
[INFO] [stdout]     |                              |
[INFO] [stdout]     |                              this can't be annotated with `?` because it has type `Result<_, Vec<pos::Spanned<TypeError>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: `DebugErr` needs to implement `From<Vec<pos::Spanned<TypeError>>>`
[INFO] [stdout]    --> src/debugger/mod.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum DebugErr {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<Vec<pos::Spanned<TypeError>>>` is not implemented for `DebugErr`
[INFO] [stdout]       but trait `From<ProgError>` is implemented for it
[INFO] [stdout]    --> src/debugger/mod.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |     TurtleError(#[from] ProgError),
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `ProgError`, found `Vec<pos::Spanned<TypeError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `TurtleError`
[INFO] [stdout]    --> src/debugger/controller.rs:435:71
[INFO] [stdout]     |
[INFO] [stdout] 435 |         let var = self.prog.with_parser(var, |p| Ok(p.parse_variable()?))?;
[INFO] [stdout]     |                                                       ----------------^ the trait `From<Vec<pos::Spanned<ParseError>>>` is not implemented for `TurtleError`
[INFO] [stdout]     |                                                       |
[INFO] [stdout]     |                                                       this can't be annotated with `?` because it has type `Result<_, Vec<pos::Spanned<ParseError>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: `TurtleError` needs to implement `From<Vec<pos::Spanned<ParseError>>>`
[INFO] [stdout]    --> src/lib.rs:53:1
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub enum TurtleError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<Vec<pos::Spanned<ParseError>>>` is not implemented for `TurtleError`
[INFO] [stdout]       but trait `From<std::io::Error>` is implemented for it
[INFO] [stdout]    --> src/lib.rs:55:13
[INFO] [stdout]     |
[INFO] [stdout]  55 |     IOError(#[from] std::io::Error),
[INFO] [stdout]     |             ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `std::io::Error`, found `Vec<pos::Spanned<ParseError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `DebugErr`
[INFO] [stdout]    --> src/debugger/controller.rs:435:74
[INFO] [stdout]     |
[INFO] [stdout] 435 |         let var = self.prog.with_parser(var, |p| Ok(p.parse_variable()?))?;
[INFO] [stdout]     |                             ---------------------------------------------^ the trait `From<TurtleError>` is not implemented for `DebugErr`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this can't be annotated with `?` because it has type `Result<_, TurtleError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `DebugErr` needs to implement `From<TurtleError>`
[INFO] [stdout]    --> src/debugger/mod.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum DebugErr {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<TurtleError>` is not implemented for `DebugErr`
[INFO] [stdout]       but trait `From<ProgError>` is implemented for it
[INFO] [stdout]    --> src/debugger/mod.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |     TurtleError(#[from] ProgError),
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `ProgError`, found `TurtleError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `kind` on type `tokens::Variable`
[INFO] [stdout]    --> src/debugger/controller.rs:436:19
[INFO] [stdout]     |
[INFO] [stdout] 436 |         match var.kind {
[INFO] [stdout]     |                   ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available field is: `0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `TurtleError`
[INFO] [stdout]    --> src/debugger/controller.rs:446:72
[INFO] [stdout]     |
[INFO] [stdout] 446 |         let mut stmt = self.prog.with_parser(stmt, |p| Ok(p.parse_stm()?))?;
[INFO] [stdout]     |                                                             -----------^ the trait `From<Vec<pos::Spanned<ParseError>>>` is not implemented for `TurtleError`
[INFO] [stdout]     |                                                             |
[INFO] [stdout]     |                                                             this can't be annotated with `?` because it has type `Result<_, Vec<pos::Spanned<ParseError>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: `TurtleError` needs to implement `From<Vec<pos::Spanned<ParseError>>>`
[INFO] [stdout]    --> src/lib.rs:53:1
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub enum TurtleError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<Vec<pos::Spanned<ParseError>>>` is not implemented for `TurtleError`
[INFO] [stdout]       but trait `From<std::io::Error>` is implemented for it
[INFO] [stdout]    --> src/lib.rs:55:13
[INFO] [stdout]     |
[INFO] [stdout]  55 |     IOError(#[from] std::io::Error),
[INFO] [stdout]     |             ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `std::io::Error`, found `Vec<pos::Spanned<ParseError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `DebugErr`
[INFO] [stdout]    --> src/debugger/controller.rs:446:75
[INFO] [stdout]     |
[INFO] [stdout] 446 |         let mut stmt = self.prog.with_parser(stmt, |p| Ok(p.parse_stm()?))?;
[INFO] [stdout]     |                                  -----------------------------------------^ the trait `From<TurtleError>` is not implemented for `DebugErr`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this can't be annotated with `?` because it has type `Result<_, TurtleError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `DebugErr` needs to implement `From<TurtleError>`
[INFO] [stdout]    --> src/debugger/mod.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum DebugErr {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<TurtleError>` is not implemented for `DebugErr`
[INFO] [stdout]       but trait `From<ProgError>` is implemented for it
[INFO] [stdout]    --> src/debugger/mod.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |     TurtleError(#[from] ProgError),
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `ProgError`, found `TurtleError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `TurtleError`
[INFO] [stdout]    --> src/debugger/controller.rs:435:71
[INFO] [stdout]     |
[INFO] [stdout] 435 |         let var = self.prog.with_parser(var, |p| Ok(p.parse_variable()?))?;
[INFO] [stdout]     |                                                       ----------------^ the trait `From<Vec<pos::Spanned<ParseError>>>` is not implemented for `TurtleError`
[INFO] [stdout]     |                                                       |
[INFO] [stdout]     |                                                       this can't be annotated with `?` because it has type `Result<_, Vec<pos::Spanned<ParseError>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: `TurtleError` needs to implement `From<Vec<pos::Spanned<ParseError>>>`
[INFO] [stdout]    --> src/lib.rs:53:1
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub enum TurtleError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<Vec<pos::Spanned<ParseError>>>` is not implemented for `TurtleError`
[INFO] [stdout]       but trait `From<std::io::Error>` is implemented for it
[INFO] [stdout]    --> src/lib.rs:55:13
[INFO] [stdout]     |
[INFO] [stdout]  55 |     IOError(#[from] std::io::Error),
[INFO] [stdout]     |             ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `std::io::Error`, found `Vec<pos::Spanned<ParseError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `DebugErr`
[INFO] [stdout]    --> src/debugger/controller.rs:448:49
[INFO] [stdout]     |
[INFO] [stdout] 448 |         let vars = stmt.semantic_check(&mut ctx)?;
[INFO] [stdout]     |                         ------------------------^ the trait `From<Vec<pos::Spanned<TypeError>>>` is not implemented for `DebugErr`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this can't be annotated with `?` because it has type `Result<_, Vec<pos::Spanned<TypeError>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: `DebugErr` needs to implement `From<Vec<pos::Spanned<TypeError>>>`
[INFO] [stdout]    --> src/debugger/mod.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum DebugErr {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<Vec<pos::Spanned<TypeError>>>` is not implemented for `DebugErr`
[INFO] [stdout]       but trait `From<ProgError>` is implemented for it
[INFO] [stdout]    --> src/debugger/mod.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |     TurtleError(#[from] ProgError),
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `ProgError`, found `Vec<pos::Spanned<TypeError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `DebugErr`
[INFO] [stdout]    --> src/debugger/controller.rs:435:74
[INFO] [stdout]     |
[INFO] [stdout] 435 |         let var = self.prog.with_parser(var, |p| Ok(p.parse_variable()?))?;
[INFO] [stdout]     |                             ---------------------------------------------^ the trait `From<TurtleError>` is not implemented for `DebugErr`
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this can't be annotated with `?` because it has type `Result<_, TurtleError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `DebugErr` needs to implement `From<TurtleError>`
[INFO] [stdout]    --> src/debugger/mod.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum DebugErr {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<TurtleError>` is not implemented for `DebugErr`
[INFO] [stdout]       but trait `From<ProgError>` is implemented for it
[INFO] [stdout]    --> src/debugger/mod.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |     TurtleError(#[from] ProgError),
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `ProgError`, found `TurtleError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `kind` on type `tokens::Variable`
[INFO] [stdout]    --> src/debugger/controller.rs:436:19
[INFO] [stdout]     |
[INFO] [stdout] 436 |         match var.kind {
[INFO] [stdout]     |                   ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available field is: `0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `TurtleError`
[INFO] [stdout]    --> src/debugger/controller.rs:446:72
[INFO] [stdout]     |
[INFO] [stdout] 446 |         let mut stmt = self.prog.with_parser(stmt, |p| Ok(p.parse_stm()?))?;
[INFO] [stdout]     |                                                             -----------^ the trait `From<Vec<pos::Spanned<ParseError>>>` is not implemented for `TurtleError`
[INFO] [stdout]     |                                                             |
[INFO] [stdout]     |                                                             this can't be annotated with `?` because it has type `Result<_, Vec<pos::Spanned<ParseError>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: `TurtleError` needs to implement `From<Vec<pos::Spanned<ParseError>>>`
[INFO] [stdout]    --> src/lib.rs:53:1
[INFO] [stdout]     |
[INFO] [stdout]  53 | pub enum TurtleError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<Vec<pos::Spanned<ParseError>>>` is not implemented for `TurtleError`
[INFO] [stdout]       but trait `From<std::io::Error>` is implemented for it
[INFO] [stdout]    --> src/lib.rs:55:13
[INFO] [stdout]     |
[INFO] [stdout]  55 |     IOError(#[from] std::io::Error),
[INFO] [stdout]     |             ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `std::io::Error`, found `Vec<pos::Spanned<ParseError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `DebugErr`
[INFO] [stdout]    --> src/debugger/controller.rs:446:75
[INFO] [stdout]     |
[INFO] [stdout] 446 |         let mut stmt = self.prog.with_parser(stmt, |p| Ok(p.parse_stm()?))?;
[INFO] [stdout]     |                                  -----------------------------------------^ the trait `From<TurtleError>` is not implemented for `DebugErr`
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  this can't be annotated with `?` because it has type `Result<_, TurtleError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `DebugErr` needs to implement `From<TurtleError>`
[INFO] [stdout]    --> src/debugger/mod.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum DebugErr {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<TurtleError>` is not implemented for `DebugErr`
[INFO] [stdout]       but trait `From<ProgError>` is implemented for it
[INFO] [stdout]    --> src/debugger/mod.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |     TurtleError(#[from] ProgError),
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `ProgError`, found `TurtleError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `DebugErr`
[INFO] [stdout]    --> src/debugger/controller.rs:448:49
[INFO] [stdout]     |
[INFO] [stdout] 448 |         let vars = stmt.semantic_check(&mut ctx)?;
[INFO] [stdout]     |                         ------------------------^ the trait `From<Vec<pos::Spanned<TypeError>>>` is not implemented for `DebugErr`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         this can't be annotated with `?` because it has type `Result<_, Vec<pos::Spanned<TypeError>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: `DebugErr` needs to implement `From<Vec<pos::Spanned<TypeError>>>`
[INFO] [stdout]    --> src/debugger/mod.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum DebugErr {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<Vec<pos::Spanned<TypeError>>>` is not implemented for `DebugErr`
[INFO] [stdout]       but trait `From<ProgError>` is implemented for it
[INFO] [stdout]    --> src/debugger/mod.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |     TurtleError(#[from] ProgError),
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `ProgError`, found `Vec<pos::Spanned<TypeError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `ParseError` found for enum `ProgError` in the current scope
[INFO] [stdout]    --> src/debugger/controller.rs:456:46
[INFO] [stdout]     |
[INFO] [stdout] 456 |             Some(Err(why)) => Err(ProgError::ParseError(why)),
[INFO] [stdout]     |                                              ^^^^^^^^^^ variant, associated function, or constant not found in `ProgError`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:67:1
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub enum ProgError {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `ParseError` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `ParseError` found for enum `ProgError` in the current scope
[INFO] [stdout]    --> src/debugger/controller.rs:457:36
[INFO] [stdout]     |
[INFO] [stdout] 457 |             None => Err(ProgError::ParseError(p.eof_err())),
[INFO] [stdout]     |                                    ^^^^^^^^^^ variant, associated function, or constant not found in `ProgError`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:67:1
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub enum ProgError {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `ParseError` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `DebugErr`
[INFO] [stdout]    --> src/debugger/controller.rs:458:11
[INFO] [stdout]     |
[INFO] [stdout] 454 |           let func = self.prog.with_parser(func, |p| match p.parse_next() {
[INFO] [stdout]     |  ______________________________-
[INFO] [stdout] 455 | |             Some(Ok(func)) => Ok(func),
[INFO] [stdout] 456 | |             Some(Err(why)) => Err(ProgError::ParseError(why)),
[INFO] [stdout] 457 | |             None => Err(ProgError::ParseError(p.eof_err())),
[INFO] [stdout] 458 | |         })?;
[INFO] [stdout]     | |          -^ the trait `From<TurtleError>` is not implemented for `DebugErr`
[INFO] [stdout]     | |__________|
[INFO] [stdout]     |            this can't be annotated with `?` because it has type `Result<_, TurtleError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `DebugErr` needs to implement `From<TurtleError>`
[INFO] [stdout]    --> src/debugger/mod.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum DebugErr {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<TurtleError>` is not implemented for `DebugErr`
[INFO] [stdout]       but trait `From<ProgError>` is implemented for it
[INFO] [stdout]    --> src/debugger/mod.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |     TurtleError(#[from] ProgError),
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `ProgError`, found `TurtleError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0023]: this pattern has 2 fields, but the corresponding tuple variant has 1 field
[INFO] [stdout]    --> src/debugger/controller.rs:514:46
[INFO] [stdout]     |
[INFO] [stdout] 514 |             crate::tokens::ParseToken::Param(_, _) => return Err(DebugErr::Params),
[INFO] [stdout]     |                                              ^  ^ expected 1 field, found 2
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tokens/mod.rs:58:11
[INFO] [stdout]     |
[INFO] [stdout]  58 |     Param(Param),
[INFO] [stdout]     |           ----- tuple variant has 1 field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `ParseError` found for enum `ProgError` in the current scope
[INFO] [stdout]    --> src/debugger/controller.rs:456:46
[INFO] [stdout]     |
[INFO] [stdout] 456 |             Some(Err(why)) => Err(ProgError::ParseError(why)),
[INFO] [stdout]     |                                              ^^^^^^^^^^ variant, associated function, or constant not found in `ProgError`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:67:1
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub enum ProgError {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `ParseError` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `DebugErr`
[INFO] [stdout]    --> src/debugger/controller.rs:462:50
[INFO] [stdout]     |
[INFO] [stdout] 462 |                 if !path.semantic_check(&mut ctx)? {
[INFO] [stdout]     |                          ------------------------^ the trait `From<Vec<pos::Spanned<TypeError>>>` is not implemented for `DebugErr`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          this can't be annotated with `?` because it has type `Result<_, Vec<pos::Spanned<TypeError>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: `DebugErr` needs to implement `From<Vec<pos::Spanned<TypeError>>>`
[INFO] [stdout]    --> src/debugger/mod.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum DebugErr {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<Vec<pos::Spanned<TypeError>>>` is not implemented for `DebugErr`
[INFO] [stdout]       but trait `From<ProgError>` is implemented for it
[INFO] [stdout]    --> src/debugger/mod.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |     TurtleError(#[from] ProgError),
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `ProgError`, found `Vec<pos::Spanned<TypeError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/controller.rs:464:57
[INFO] [stdout]     |
[INFO] [stdout] 464 |                     let undef = semcheck::collect_undef(vars, false);
[INFO] [stdout]     |                                 ----------------------- ^^^^ expected `Vec<VariableKind>`, found opaque type
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/prog/semcheck/mod.rs:410:47
[INFO] [stdout]     |
[INFO] [stdout] 410 |     pub(crate) fn collect_variables(&self) -> impl Iterator<Item = VariableKind> {
[INFO] [stdout]     |                                               ---------------------------------- the found opaque type
[INFO] [stdout]     |
[INFO] [stdout]     = note:   expected struct `Vec<tokens::VariableKind>`
[INFO] [stdout]             found opaque type `impl Iterator<Item = tokens::VariableKind>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/prog/semcheck/mod.rs:460:8
[INFO] [stdout]     |
[INFO] [stdout] 460 | pub fn collect_undef(vars: Vec<VariableKind>, local: bool) -> Vec<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^ -----------------------
[INFO] [stdout] help: consider using `.collect()` to convert the `Iterator` into a `Vec<tokens::VariableKind>`
[INFO] [stdout]     |
[INFO] [stdout] 464 |                     let undef = semcheck::collect_undef(vars.collect(), false);
[INFO] [stdout]     |                                                             ++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `ParseError` found for enum `ProgError` in the current scope
[INFO] [stdout]    --> src/debugger/controller.rs:457:36
[INFO] [stdout]     |
[INFO] [stdout] 457 |             None => Err(ProgError::ParseError(p.eof_err())),
[INFO] [stdout]     |                                    ^^^^^^^^^^ variant, associated function, or constant not found in `ProgError`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:67:1
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub enum ProgError {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `ParseError` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `DebugErr`
[INFO] [stdout]    --> src/debugger/controller.rs:458:11
[INFO] [stdout]     |
[INFO] [stdout] 454 |           let func = self.prog.with_parser(func, |p| match p.parse_next() {
[INFO] [stdout]     |  ______________________________-
[INFO] [stdout] 455 | |             Some(Ok(func)) => Ok(func),
[INFO] [stdout] 456 | |             Some(Err(why)) => Err(ProgError::ParseError(why)),
[INFO] [stdout] 457 | |             None => Err(ProgError::ParseError(p.eof_err())),
[INFO] [stdout] 458 | |         })?;
[INFO] [stdout]     | |          -^ the trait `From<TurtleError>` is not implemented for `DebugErr`
[INFO] [stdout]     | |__________|
[INFO] [stdout]     |            this can't be annotated with `?` because it has type `Result<_, TurtleError>`
[INFO] [stdout]     |
[INFO] [stdout] note: `DebugErr` needs to implement `From<TurtleError>`
[INFO] [stdout]    --> src/debugger/mod.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum DebugErr {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<TurtleError>` is not implemented for `DebugErr`
[INFO] [stdout]       but trait `From<ProgError>` is implemented for it
[INFO] [stdout]    --> src/debugger/mod.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |     TurtleError(#[from] ProgError),
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `ProgError`, found `TurtleError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0023]: this pattern has 2 fields, but the corresponding tuple variant has 1 field
[INFO] [stdout]    --> src/debugger/controller.rs:514:46
[INFO] [stdout]     |
[INFO] [stdout] 514 |             crate::tokens::ParseToken::Param(_, _) => return Err(DebugErr::Params),
[INFO] [stdout]     |                                              ^  ^ expected 1 field, found 2
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/tokens/mod.rs:58:11
[INFO] [stdout]     |
[INFO] [stdout]  58 |     Param(Param),
[INFO] [stdout]     |           ----- tuple variant has 1 field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `DebugErr`
[INFO] [stdout]    --> src/debugger/controller.rs:462:50
[INFO] [stdout]     |
[INFO] [stdout] 462 |                 if !path.semantic_check(&mut ctx)? {
[INFO] [stdout]     |                          ------------------------^ the trait `From<Vec<pos::Spanned<TypeError>>>` is not implemented for `DebugErr`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          this can't be annotated with `?` because it has type `Result<_, Vec<pos::Spanned<TypeError>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: `DebugErr` needs to implement `From<Vec<pos::Spanned<TypeError>>>`
[INFO] [stdout]    --> src/debugger/mod.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum DebugErr {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<Vec<pos::Spanned<TypeError>>>` is not implemented for `DebugErr`
[INFO] [stdout]       but trait `From<ProgError>` is implemented for it
[INFO] [stdout]    --> src/debugger/mod.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |     TurtleError(#[from] ProgError),
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `ProgError`, found `Vec<pos::Spanned<TypeError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `UndefGlobals` found for enum `ProgError` in the current scope
[INFO] [stdout]    --> src/debugger/controller.rs:465:36
[INFO] [stdout]     |
[INFO] [stdout] 465 |                     Err(ProgError::UndefGlobals(undef))?;
[INFO] [stdout]     |                                    ^^^^^^^^^^^^ variant, associated function, or constant not found in `ProgError`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:67:1
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub enum ProgError {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `UndefGlobals` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/controller.rs:464:57
[INFO] [stdout]     |
[INFO] [stdout] 464 |                     let undef = semcheck::collect_undef(vars, false);
[INFO] [stdout]     |                                 ----------------------- ^^^^ expected `Vec<VariableKind>`, found opaque type
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/prog/semcheck/mod.rs:410:47
[INFO] [stdout]     |
[INFO] [stdout] 410 |     pub(crate) fn collect_variables(&self) -> impl Iterator<Item = VariableKind> {
[INFO] [stdout]     |                                               ---------------------------------- the found opaque type
[INFO] [stdout]     |
[INFO] [stdout]     = note:   expected struct `Vec<tokens::VariableKind>`
[INFO] [stdout]             found opaque type `impl Iterator<Item = tokens::VariableKind>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/prog/semcheck/mod.rs:460:8
[INFO] [stdout]     |
[INFO] [stdout] 460 | pub fn collect_undef(vars: Vec<VariableKind>, local: bool) -> Vec<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^ -----------------------
[INFO] [stdout] help: consider using `.collect()` to convert the `Iterator` into a `Vec<tokens::VariableKind>`
[INFO] [stdout]     |
[INFO] [stdout] 464 |                     let undef = semcheck::collect_undef(vars.collect(), false);
[INFO] [stdout]     |                                                             ++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `DebugErr`
[INFO] [stdout]    --> src/debugger/controller.rs:480:50
[INFO] [stdout]     |
[INFO] [stdout] 480 |                 if !calc.semantic_check(&mut ctx)? {
[INFO] [stdout]     |                          ------------------------^ the trait `From<Vec<pos::Spanned<TypeError>>>` is not implemented for `DebugErr`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          this can't be annotated with `?` because it has type `Result<_, Vec<pos::Spanned<TypeError>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: `DebugErr` needs to implement `From<Vec<pos::Spanned<TypeError>>>`
[INFO] [stdout]    --> src/debugger/mod.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum DebugErr {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<Vec<pos::Spanned<TypeError>>>` is not implemented for `DebugErr`
[INFO] [stdout]       but trait `From<ProgError>` is implemented for it
[INFO] [stdout]    --> src/debugger/mod.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |     TurtleError(#[from] ProgError),
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `ProgError`, found `Vec<pos::Spanned<TypeError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/controller.rs:482:57
[INFO] [stdout]     |
[INFO] [stdout] 482 |                     let undef = semcheck::collect_undef(vars, false);
[INFO] [stdout]     |                                 ----------------------- ^^^^ expected `Vec<VariableKind>`, found opaque type
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/prog/semcheck/mod.rs:410:47
[INFO] [stdout]     |
[INFO] [stdout] 410 |     pub(crate) fn collect_variables(&self) -> impl Iterator<Item = VariableKind> {
[INFO] [stdout]     |                                               ---------------------------------- the found opaque type
[INFO] [stdout]     |
[INFO] [stdout]     = note:   expected struct `Vec<tokens::VariableKind>`
[INFO] [stdout]             found opaque type `impl Iterator<Item = tokens::VariableKind>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/prog/semcheck/mod.rs:460:8
[INFO] [stdout]     |
[INFO] [stdout] 460 | pub fn collect_undef(vars: Vec<VariableKind>, local: bool) -> Vec<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^ -----------------------
[INFO] [stdout] help: consider using `.collect()` to convert the `Iterator` into a `Vec<tokens::VariableKind>`
[INFO] [stdout]     |
[INFO] [stdout] 482 |                     let undef = semcheck::collect_undef(vars.collect(), false);
[INFO] [stdout]     |                                                             ++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `UndefGlobals` found for enum `ProgError` in the current scope
[INFO] [stdout]    --> src/debugger/controller.rs:465:36
[INFO] [stdout]     |
[INFO] [stdout] 465 |                     Err(ProgError::UndefGlobals(undef))?;
[INFO] [stdout]     |                                    ^^^^^^^^^^^^ variant, associated function, or constant not found in `ProgError`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:67:1
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub enum ProgError {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `UndefGlobals` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `UndefGlobals` found for enum `ProgError` in the current scope
[INFO] [stdout]    --> src/debugger/controller.rs:483:36
[INFO] [stdout]     |
[INFO] [stdout] 483 |                     Err(ProgError::UndefGlobals(undef))?;
[INFO] [stdout]     |                                    ^^^^^^^^^^^^ variant, associated function, or constant not found in `ProgError`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:67:1
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub enum ProgError {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `UndefGlobals` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `DebugErr`
[INFO] [stdout]    --> src/debugger/controller.rs:498:50
[INFO] [stdout]     |
[INFO] [stdout] 498 |                 if !path.semantic_check(&mut ctx)? {
[INFO] [stdout]     |                          ------------------------^ the trait `From<Vec<pos::Spanned<TypeError>>>` is not implemented for `DebugErr`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          this can't be annotated with `?` because it has type `Result<_, Vec<pos::Spanned<TypeError>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: `DebugErr` needs to implement `From<Vec<pos::Spanned<TypeError>>>`
[INFO] [stdout]    --> src/debugger/mod.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum DebugErr {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<Vec<pos::Spanned<TypeError>>>` is not implemented for `DebugErr`
[INFO] [stdout]       but trait `From<ProgError>` is implemented for it
[INFO] [stdout]    --> src/debugger/mod.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |     TurtleError(#[from] ProgError),
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `ProgError`, found `Vec<pos::Spanned<TypeError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `DebugErr`
[INFO] [stdout]    --> src/debugger/controller.rs:480:50
[INFO] [stdout]     |
[INFO] [stdout] 480 |                 if !calc.semantic_check(&mut ctx)? {
[INFO] [stdout]     |                          ------------------------^ the trait `From<Vec<pos::Spanned<TypeError>>>` is not implemented for `DebugErr`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          this can't be annotated with `?` because it has type `Result<_, Vec<pos::Spanned<TypeError>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: `DebugErr` needs to implement `From<Vec<pos::Spanned<TypeError>>>`
[INFO] [stdout]    --> src/debugger/mod.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum DebugErr {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<Vec<pos::Spanned<TypeError>>>` is not implemented for `DebugErr`
[INFO] [stdout]       but trait `From<ProgError>` is implemented for it
[INFO] [stdout]    --> src/debugger/mod.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |     TurtleError(#[from] ProgError),
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `ProgError`, found `Vec<pos::Spanned<TypeError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/controller.rs:482:57
[INFO] [stdout]     |
[INFO] [stdout] 482 |                     let undef = semcheck::collect_undef(vars, false);
[INFO] [stdout]     |                                 ----------------------- ^^^^ expected `Vec<VariableKind>`, found opaque type
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/prog/semcheck/mod.rs:410:47
[INFO] [stdout]     |
[INFO] [stdout] 410 |     pub(crate) fn collect_variables(&self) -> impl Iterator<Item = VariableKind> {
[INFO] [stdout]     |                                               ---------------------------------- the found opaque type
[INFO] [stdout]     |
[INFO] [stdout]     = note:   expected struct `Vec<tokens::VariableKind>`
[INFO] [stdout]             found opaque type `impl Iterator<Item = tokens::VariableKind>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/prog/semcheck/mod.rs:460:8
[INFO] [stdout]     |
[INFO] [stdout] 460 | pub fn collect_undef(vars: Vec<VariableKind>, local: bool) -> Vec<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^ -----------------------
[INFO] [stdout] help: consider using `.collect()` to convert the `Iterator` into a `Vec<tokens::VariableKind>`
[INFO] [stdout]     |
[INFO] [stdout] 482 |                     let undef = semcheck::collect_undef(vars.collect(), false);
[INFO] [stdout]     |                                                             ++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/controller.rs:500:57
[INFO] [stdout]     |
[INFO] [stdout] 500 |                     let undef = semcheck::collect_undef(vars, false);
[INFO] [stdout]     |                                 ----------------------- ^^^^ expected `Vec<VariableKind>`, found opaque type
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/prog/semcheck/mod.rs:410:47
[INFO] [stdout]     |
[INFO] [stdout] 410 |     pub(crate) fn collect_variables(&self) -> impl Iterator<Item = VariableKind> {
[INFO] [stdout]     |                                               ---------------------------------- the found opaque type
[INFO] [stdout]     |
[INFO] [stdout]     = note:   expected struct `Vec<tokens::VariableKind>`
[INFO] [stdout]             found opaque type `impl Iterator<Item = tokens::VariableKind>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/prog/semcheck/mod.rs:460:8
[INFO] [stdout]     |
[INFO] [stdout] 460 | pub fn collect_undef(vars: Vec<VariableKind>, local: bool) -> Vec<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^ -----------------------
[INFO] [stdout] help: consider using `.collect()` to convert the `Iterator` into a `Vec<tokens::VariableKind>`
[INFO] [stdout]     |
[INFO] [stdout] 500 |                     let undef = semcheck::collect_undef(vars.collect(), false);
[INFO] [stdout]     |                                                             ++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `UndefGlobals` found for enum `ProgError` in the current scope
[INFO] [stdout]    --> src/debugger/controller.rs:483:36
[INFO] [stdout]     |
[INFO] [stdout] 483 |                     Err(ProgError::UndefGlobals(undef))?;
[INFO] [stdout]     |                                    ^^^^^^^^^^^^ variant, associated function, or constant not found in `ProgError`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:67:1
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub enum ProgError {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `UndefGlobals` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `UndefGlobals` found for enum `ProgError` in the current scope
[INFO] [stdout]    --> src/debugger/controller.rs:501:36
[INFO] [stdout]     |
[INFO] [stdout] 501 |                     Err(ProgError::UndefGlobals(undef))?;
[INFO] [stdout]     |                                    ^^^^^^^^^^^^ variant, associated function, or constant not found in `ProgError`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:67:1
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub enum ProgError {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `UndefGlobals` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: `?` couldn't convert the error to `DebugErr`
[INFO] [stdout]    --> src/debugger/controller.rs:498:50
[INFO] [stdout]     |
[INFO] [stdout] 498 |                 if !path.semantic_check(&mut ctx)? {
[INFO] [stdout]     |                          ------------------------^ the trait `From<Vec<pos::Spanned<TypeError>>>` is not implemented for `DebugErr`
[INFO] [stdout]     |                          |
[INFO] [stdout]     |                          this can't be annotated with `?` because it has type `Result<_, Vec<pos::Spanned<TypeError>>>`
[INFO] [stdout]     |
[INFO] [stdout] note: `DebugErr` needs to implement `From<Vec<pos::Spanned<TypeError>>>`
[INFO] [stdout]    --> src/debugger/mod.rs:207:1
[INFO] [stdout]     |
[INFO] [stdout] 207 | pub enum DebugErr {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
[INFO] [stdout] help: the trait `From<Vec<pos::Spanned<TypeError>>>` is not implemented for `DebugErr`
[INFO] [stdout]       but trait `From<ProgError>` is implemented for it
[INFO] [stdout]    --> src/debugger/mod.rs:217:17
[INFO] [stdout]     |
[INFO] [stdout] 217 |     TurtleError(#[from] ProgError),
[INFO] [stdout]     |                 ^^^^^^^
[INFO] [stdout]     = help: for that trait implementation, expected `ProgError`, found `Vec<pos::Spanned<TypeError>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/controller.rs:500:57
[INFO] [stdout]     |
[INFO] [stdout] 500 |                     let undef = semcheck::collect_undef(vars, false);
[INFO] [stdout]     |                                 ----------------------- ^^^^ expected `Vec<VariableKind>`, found opaque type
[INFO] [stdout]     |                                 |
[INFO] [stdout]     |                                 arguments to this function are incorrect
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/prog/semcheck/mod.rs:410:47
[INFO] [stdout]     |
[INFO] [stdout] 410 |     pub(crate) fn collect_variables(&self) -> impl Iterator<Item = VariableKind> {
[INFO] [stdout]     |                                               ---------------------------------- the found opaque type
[INFO] [stdout]     |
[INFO] [stdout]     = note:   expected struct `Vec<tokens::VariableKind>`
[INFO] [stdout]             found opaque type `impl Iterator<Item = tokens::VariableKind>`
[INFO] [stdout] note: function defined here
[INFO] [stdout]    --> src/prog/semcheck/mod.rs:460:8
[INFO] [stdout]     |
[INFO] [stdout] 460 | pub fn collect_undef(vars: Vec<VariableKind>, local: bool) -> Vec<usize> {
[INFO] [stdout]     |        ^^^^^^^^^^^^^ -----------------------
[INFO] [stdout] help: consider using `.collect()` to convert the `Iterator` into a `Vec<tokens::VariableKind>`
[INFO] [stdout]     |
[INFO] [stdout] 500 |                     let undef = semcheck::collect_undef(vars.collect(), false);
[INFO] [stdout]     |                                                             ++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `UndefGlobals` found for enum `ProgError` in the current scope
[INFO] [stdout]    --> src/debugger/controller.rs:501:36
[INFO] [stdout]     |
[INFO] [stdout] 501 |                     Err(ProgError::UndefGlobals(undef))?;
[INFO] [stdout]     |                                    ^^^^^^^^^^^^ variant, associated function, or constant not found in `ProgError`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:67:1
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub enum ProgError {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `UndefGlobals` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: struct takes 1 lifetime argument but 2 lifetime arguments were supplied
[INFO] [stdout]    --> src/debugger/interface/shell.rs:173:35
[INFO] [stdout]     |
[INFO] [stdout] 173 |             let p_stmt = |p: &mut Parser<'_, '_>| match p.parse_stm() {
[INFO] [stdout]     |                                   ^^^^^^   ---- help: remove the lifetime argument
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   expected 1 lifetime argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 lifetime parameter: `'p`
[INFO] [stdout]    --> src/prog/parser/mod.rs:19:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | pub struct Parser<'p> {
[INFO] [stdout]     |            ^^^^^^ --
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/interface/shell.rs:175:21
[INFO] [stdout]     |
[INFO] [stdout] 174 |                 Err(why) => match *why {
[INFO] [stdout]     |                                   ---- this expression has type `[pos::Spanned<ParseError>]`
[INFO] [stdout] 175 |                     ParseError::UnexpectedEnd => Ok(Found::None),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `[Spanned<ParseError>]`, found `ParseError`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected slice `[pos::Spanned<ParseError>]`
[INFO] [stdout]                 found enum `ParseError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `ParseError` found for enum `ProgError` in the current scope
[INFO] [stdout]    --> src/debugger/interface/shell.rs:176:41
[INFO] [stdout]     |
[INFO] [stdout] 176 |                     _ => Err(ProgError::ParseError(why)),
[INFO] [stdout]     |                                         ^^^^^^^^^^ variant, associated function, or constant not found in `ProgError`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:67:1
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub enum ProgError {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `ParseError` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/interface/shell.rs:185:25
[INFO] [stdout]     |
[INFO] [stdout] 184 |                     Some(Err(why)) => match *why {
[INFO] [stdout]     |                                             ---- this expression has type `[pos::Spanned<ParseError>]`
[INFO] [stdout] 185 |                         ParseError::UnexpectedToken(_, TokenExpectation::BlockStart) => {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `[Spanned<ParseError>]`, found `ParseError`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected slice `[pos::Spanned<ParseError>]`
[INFO] [stdout]                 found enum `ParseError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/interface/shell.rs:189:25
[INFO] [stdout]     |
[INFO] [stdout] 184 |                     Some(Err(why)) => match *why {
[INFO] [stdout]     |                                             ---- this expression has type `[pos::Spanned<ParseError>]`
[INFO] [stdout] ...
[INFO] [stdout] 189 |                         ParseError::UnexpectedEnd => Ok(Found::None),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `[Spanned<ParseError>]`, found `ParseError`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected slice `[pos::Spanned<ParseError>]`
[INFO] [stdout]                 found enum `ParseError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0107]: struct takes 1 lifetime argument but 2 lifetime arguments were supplied
[INFO] [stdout]    --> src/debugger/interface/shell.rs:173:35
[INFO] [stdout]     |
[INFO] [stdout] 173 |             let p_stmt = |p: &mut Parser<'_, '_>| match p.parse_stm() {
[INFO] [stdout]     |                                   ^^^^^^   ---- help: remove the lifetime argument
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   expected 1 lifetime argument
[INFO] [stdout]     |
[INFO] [stdout] note: struct defined here, with 1 lifetime parameter: `'p`
[INFO] [stdout]    --> src/prog/parser/mod.rs:19:12
[INFO] [stdout]     |
[INFO] [stdout]  19 | pub struct Parser<'p> {
[INFO] [stdout]     |            ^^^^^^ --
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/interface/shell.rs:175:21
[INFO] [stdout]     |
[INFO] [stdout] 174 |                 Err(why) => match *why {
[INFO] [stdout]     |                                   ---- this expression has type `[pos::Spanned<ParseError>]`
[INFO] [stdout] 175 |                     ParseError::UnexpectedEnd => Ok(Found::None),
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `[Spanned<ParseError>]`, found `ParseError`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected slice `[pos::Spanned<ParseError>]`
[INFO] [stdout]                 found enum `ParseError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `ParseError` found for enum `ProgError` in the current scope
[INFO] [stdout]    --> src/debugger/interface/shell.rs:190:45
[INFO] [stdout]     |
[INFO] [stdout] 190 |                         _ => Err(ProgError::ParseError(why)),
[INFO] [stdout]     |                                             ^^^^^^^^^^ variant, associated function, or constant not found in `ProgError`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:67:1
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub enum ProgError {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `ParseError` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `ParseError` found for enum `ProgError` in the current scope
[INFO] [stdout]    --> src/debugger/interface/shell.rs:176:41
[INFO] [stdout]     |
[INFO] [stdout] 176 |                     _ => Err(ProgError::ParseError(why)),
[INFO] [stdout]     |                                         ^^^^^^^^^^ variant, associated function, or constant not found in `ProgError`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:67:1
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub enum ProgError {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `ParseError` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/interface/shell.rs:185:25
[INFO] [stdout]     |
[INFO] [stdout] 184 |                     Some(Err(why)) => match *why {
[INFO] [stdout]     |                                             ---- this expression has type `[pos::Spanned<ParseError>]`
[INFO] [stdout] 185 |                         ParseError::UnexpectedToken(_, TokenExpectation::BlockStart) => {
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `[Spanned<ParseError>]`, found `ParseError`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected slice `[pos::Spanned<ParseError>]`
[INFO] [stdout]                 found enum `ParseError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/debugger/interface/shell.rs:189:25
[INFO] [stdout]     |
[INFO] [stdout] 184 |                     Some(Err(why)) => match *why {
[INFO] [stdout]     |                                             ---- this expression has type `[pos::Spanned<ParseError>]`
[INFO] [stdout] ...
[INFO] [stdout] 189 |                         ParseError::UnexpectedEnd => Ok(Found::None),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^ expected `[Spanned<ParseError>]`, found `ParseError`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected slice `[pos::Spanned<ParseError>]`
[INFO] [stdout]                 found enum `ParseError`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no variant, associated function, or constant named `ParseError` found for enum `ProgError` in the current scope
[INFO] [stdout]    --> src/debugger/interface/shell.rs:190:45
[INFO] [stdout]     |
[INFO] [stdout] 190 |                         _ => Err(ProgError::ParseError(why)),
[INFO] [stdout]     |                                             ^^^^^^^^^^ variant, associated function, or constant not found in `ProgError`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/lib.rs:67:1
[INFO] [stdout]     |
[INFO] [stdout]  67 | pub enum ProgError {
[INFO] [stdout]     | ------------------ variant, associated function, or constant `ParseError` not found for this enum
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/debugger/runner.rs:96:23
[INFO] [stdout]    |
[INFO] [stdout] 96 |             last_pos: prog.main.begin,
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^ expected `FilePos`, found `Span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `pos::Span: From<pos::FilePos>` is not satisfied
[INFO] [stdout]    --> src/debugger/runner.rs:137:44
[INFO] [stdout]     |
[INFO] [stdout] 137 |                     act = Some(a.with_span(pos, pos));
[INFO] [stdout]     |                                  --------- ^^^ unsatisfied trait bound
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<pos::FilePos>` is not implemented for `pos::Span`
[INFO] [stdout]    --> src/pos.rs:52:1
[INFO] [stdout]     |
[INFO] [stdout]  52 | pub struct Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] help: `pos::Span` implements trait `From<T>`
[INFO] [stdout]    --> src/pos.rs:70:1
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl From<(FilePos, FilePos)> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<(pos::FilePos, pos::FilePos)>`
[INFO] [stdout] ...
[INFO] [stdout]  76 | impl<T> From<Spanned<T>> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<pos::Spanned<T>>`
[INFO] [stdout] ...
[INFO] [stdout]  82 | impl<T> From<&'_ Spanned<T>> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<&pos::Spanned<T>>`
[INFO] [stdout] ...
[INFO] [stdout]  88 | impl<T> From<&'_ mut Spanned<T>> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<&mut pos::Spanned<T>>`
[INFO] [stdout]     = note: required for `pos::FilePos` to implement `Into<pos::Span>`
[INFO] [stdout] note: required by a bound in `pos::Positionable::with_span`
[INFO] [stdout]    --> src/pos.rs:162:35
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn with_span(self, span: impl Into<Span>) -> Spanned<Self>;
[INFO] [stdout]     |                                   ^^^^^^^^^^ required by this bound in `Positionable::with_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> src/debugger/runner.rs:137:34
[INFO] [stdout]     |
[INFO] [stdout] 137 |                     act = Some(a.with_span(pos, pos));
[INFO] [stdout]     |                                  ^^^^^^^^^      --- unexpected argument #2 of type `pos::FilePos`
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/pos.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn with_span(self, span: impl Into<Span>) -> Spanned<Self>;
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 137 -                     act = Some(a.with_span(pos, pos));
[INFO] [stdout] 137 +                     act = Some(a.with_span(pos));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/debugger/runner.rs:96:23
[INFO] [stdout]    |
[INFO] [stdout] 96 |             last_pos: prog.main.begin,
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^ expected `FilePos`, found `Span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `pos::Span: From<pos::FilePos>` is not satisfied
[INFO] [stdout]    --> src/debugger/runner.rs:143:56
[INFO] [stdout]     |
[INFO] [stdout] 143 |                 Ok((a, pos)) => act = Some(a.with_span(pos, pos)),
[INFO] [stdout]     |                                              --------- ^^^ unsatisfied trait bound
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<pos::FilePos>` is not implemented for `pos::Span`
[INFO] [stdout]    --> src/pos.rs:52:1
[INFO] [stdout]     |
[INFO] [stdout]  52 | pub struct Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] help: `pos::Span` implements trait `From<T>`
[INFO] [stdout]    --> src/pos.rs:70:1
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl From<(FilePos, FilePos)> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<(pos::FilePos, pos::FilePos)>`
[INFO] [stdout] ...
[INFO] [stdout]  76 | impl<T> From<Spanned<T>> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<pos::Spanned<T>>`
[INFO] [stdout] ...
[INFO] [stdout]  82 | impl<T> From<&'_ Spanned<T>> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<&pos::Spanned<T>>`
[INFO] [stdout] ...
[INFO] [stdout]  88 | impl<T> From<&'_ mut Spanned<T>> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<&mut pos::Spanned<T>>`
[INFO] [stdout]     = note: required for `pos::FilePos` to implement `Into<pos::Span>`
[INFO] [stdout] note: required by a bound in `pos::Positionable::with_span`
[INFO] [stdout]    --> src/pos.rs:162:35
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn with_span(self, span: impl Into<Span>) -> Spanned<Self>;
[INFO] [stdout]     |                                   ^^^^^^^^^^ required by this bound in `Positionable::with_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `pos::Span: From<pos::FilePos>` is not satisfied
[INFO] [stdout]    --> src/debugger/runner.rs:137:44
[INFO] [stdout]     |
[INFO] [stdout] 137 |                     act = Some(a.with_span(pos, pos));
[INFO] [stdout]     |                                  --------- ^^^ unsatisfied trait bound
[INFO] [stdout]     |                                  |
[INFO] [stdout]     |                                  required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<pos::FilePos>` is not implemented for `pos::Span`
[INFO] [stdout]    --> src/pos.rs:52:1
[INFO] [stdout]     |
[INFO] [stdout]  52 | pub struct Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] help: `pos::Span` implements trait `From<T>`
[INFO] [stdout]    --> src/pos.rs:70:1
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl From<(FilePos, FilePos)> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<(pos::FilePos, pos::FilePos)>`
[INFO] [stdout] ...
[INFO] [stdout]  76 | impl<T> From<Spanned<T>> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<pos::Spanned<T>>`
[INFO] [stdout] ...
[INFO] [stdout]  82 | impl<T> From<&'_ Spanned<T>> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<&pos::Spanned<T>>`
[INFO] [stdout] ...
[INFO] [stdout]  88 | impl<T> From<&'_ mut Spanned<T>> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<&mut pos::Spanned<T>>`
[INFO] [stdout]     = note: required for `pos::FilePos` to implement `Into<pos::Span>`
[INFO] [stdout] note: required by a bound in `pos::Positionable::with_span`
[INFO] [stdout]    --> src/pos.rs:162:35
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn with_span(self, span: impl Into<Span>) -> Spanned<Self>;
[INFO] [stdout]     |                                   ^^^^^^^^^^ required by this bound in `Positionable::with_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> src/debugger/runner.rs:143:46
[INFO] [stdout]     |
[INFO] [stdout] 143 |                 Ok((a, pos)) => act = Some(a.with_span(pos, pos)),
[INFO] [stdout]     |                                              ^^^^^^^^^      --- unexpected argument #2 of type `pos::FilePos`
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/pos.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn with_span(self, span: impl Into<Span>) -> Spanned<Self>;
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 143 -                 Ok((a, pos)) => act = Some(a.with_span(pos, pos)),
[INFO] [stdout] 143 +                 Ok((a, pos)) => act = Some(a.with_span(pos)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> src/debugger/runner.rs:137:34
[INFO] [stdout]     |
[INFO] [stdout] 137 |                     act = Some(a.with_span(pos, pos));
[INFO] [stdout]     |                                  ^^^^^^^^^      --- unexpected argument #2 of type `pos::FilePos`
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/pos.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn with_span(self, span: impl Into<Span>) -> Spanned<Self>;
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 137 -                     act = Some(a.with_span(pos, pos));
[INFO] [stdout] 137 +                     act = Some(a.with_span(pos));
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `pos::Span: From<pos::FilePos>` is not satisfied
[INFO] [stdout]    --> src/debugger/runner.rs:143:56
[INFO] [stdout]     |
[INFO] [stdout] 143 |                 Ok((a, pos)) => act = Some(a.with_span(pos, pos)),
[INFO] [stdout]     |                                              --------- ^^^ unsatisfied trait bound
[INFO] [stdout]     |                                              |
[INFO] [stdout]     |                                              required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<pos::FilePos>` is not implemented for `pos::Span`
[INFO] [stdout]    --> src/pos.rs:52:1
[INFO] [stdout]     |
[INFO] [stdout]  52 | pub struct Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] help: `pos::Span` implements trait `From<T>`
[INFO] [stdout]    --> src/pos.rs:70:1
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl From<(FilePos, FilePos)> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<(pos::FilePos, pos::FilePos)>`
[INFO] [stdout] ...
[INFO] [stdout]  76 | impl<T> From<Spanned<T>> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<pos::Spanned<T>>`
[INFO] [stdout] ...
[INFO] [stdout]  82 | impl<T> From<&'_ Spanned<T>> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<&pos::Spanned<T>>`
[INFO] [stdout] ...
[INFO] [stdout]  88 | impl<T> From<&'_ mut Spanned<T>> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<&mut pos::Spanned<T>>`
[INFO] [stdout]     = note: required for `pos::FilePos` to implement `Into<pos::Span>`
[INFO] [stdout] note: required by a bound in `pos::Positionable::with_span`
[INFO] [stdout]    --> src/pos.rs:162:35
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn with_span(self, span: impl Into<Span>) -> Spanned<Self>;
[INFO] [stdout]     |                                   ^^^^^^^^^^ required by this bound in `Positionable::with_span`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 1 argument but 2 arguments were supplied
[INFO] [stdout]    --> src/debugger/runner.rs:143:46
[INFO] [stdout]     |
[INFO] [stdout] 143 |                 Ok((a, pos)) => act = Some(a.with_span(pos, pos)),
[INFO] [stdout]     |                                              ^^^^^^^^^      --- unexpected argument #2 of type `pos::FilePos`
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/pos.rs:162:8
[INFO] [stdout]     |
[INFO] [stdout] 162 |     fn with_span(self, span: impl Into<Span>) -> Spanned<Self>;
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] help: remove the extra argument
[INFO] [stdout]     |
[INFO] [stdout] 143 -                 Ok((a, pos)) => act = Some(a.with_span(pos, pos)),
[INFO] [stdout] 143 +                 Ok((a, pos)) => act = Some(a.with_span(pos)),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_start` found for struct `pos::Spanned<DbgAction>` in the current scope
[INFO] [stdout]    --> src/debugger/runner.rs:192:83
[INFO] [stdout]     |
[INFO] [stdout] 192 |                     if let Some(idx) = self.ctx.breakpoint_hit(self.last_pos, act.get_start()) {
[INFO] [stdout]     |                                                                                   ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pos.rs:110:1
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub struct Spanned<T> {
[INFO] [stdout]     | --------------------- method `get_start` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `get_span` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 192 -                     if let Some(idx) = self.ctx.breakpoint_hit(self.last_pos, act.get_start()) {
[INFO] [stdout] 192 +                     if let Some(idx) = self.ctx.breakpoint_hit(self.last_pos, act.get_span()) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_start` found for struct `pos::Spanned<DbgAction>` in the current scope
[INFO] [stdout]    --> src/debugger/runner.rs:192:83
[INFO] [stdout]     |
[INFO] [stdout] 192 |                     if let Some(idx) = self.ctx.breakpoint_hit(self.last_pos, act.get_start()) {
[INFO] [stdout]     |                                                                                   ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pos.rs:110:1
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub struct Spanned<T> {
[INFO] [stdout]     | --------------------- method `get_start` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `get_span` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 192 -                     if let Some(idx) = self.ctx.breakpoint_hit(self.last_pos, act.get_start()) {
[INFO] [stdout] 192 +                     if let Some(idx) = self.ctx.breakpoint_hit(self.last_pos, act.get_span()) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_start` found for struct `pos::Spanned<DbgAction>` in the current scope
[INFO] [stdout]    --> src/debugger/runner.rs:219:83
[INFO] [stdout]     |
[INFO] [stdout] 219 |                     if let Some(idx) = self.ctx.breakpoint_hit(self.last_pos, act.get_start()) {
[INFO] [stdout]     |                                                                                   ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pos.rs:110:1
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub struct Spanned<T> {
[INFO] [stdout]     | --------------------- method `get_start` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `get_span` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 219 -                     if let Some(idx) = self.ctx.breakpoint_hit(self.last_pos, act.get_start()) {
[INFO] [stdout] 219 +                     if let Some(idx) = self.ctx.breakpoint_hit(self.last_pos, act.get_span()) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `get_start` found for struct `pos::Spanned<DbgAction>` in the current scope
[INFO] [stdout]    --> src/debugger/runner.rs:219:83
[INFO] [stdout]     |
[INFO] [stdout] 219 |                     if let Some(idx) = self.ctx.breakpoint_hit(self.last_pos, act.get_start()) {
[INFO] [stdout]     |                                                                                   ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/pos.rs:110:1
[INFO] [stdout]     |
[INFO] [stdout] 110 | pub struct Spanned<T> {
[INFO] [stdout]     | --------------------- method `get_start` not found for this struct
[INFO] [stdout]     |
[INFO] [stdout] help: there is a method `get_span` with a similar name
[INFO] [stdout]     |
[INFO] [stdout] 219 -                     if let Some(idx) = self.ctx.breakpoint_hit(self.last_pos, act.get_start()) {
[INFO] [stdout] 219 +                     if let Some(idx) = self.ctx.breakpoint_hit(self.last_pos, act.get_span()) {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `pos::Span: From<pos::FilePos>` is not satisfied
[INFO] [stdout]    --> src/debugger/runner.rs:277:66
[INFO] [stdout]     |
[INFO] [stdout] 277 |                     let var = VariableKind::GlobalPreDef(pdv).at(FilePos::default());
[INFO] [stdout]     |                                                               -- ^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<pos::FilePos>` is not implemented for `pos::Span`
[INFO] [stdout]    --> src/pos.rs:52:1
[INFO] [stdout]     |
[INFO] [stdout]  52 | pub struct Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] help: `pos::Span` implements trait `From<T>`
[INFO] [stdout]    --> src/pos.rs:70:1
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl From<(FilePos, FilePos)> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<(pos::FilePos, pos::FilePos)>`
[INFO] [stdout] ...
[INFO] [stdout]  76 | impl<T> From<Spanned<T>> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<pos::Spanned<T>>`
[INFO] [stdout] ...
[INFO] [stdout]  82 | impl<T> From<&'_ Spanned<T>> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<&pos::Spanned<T>>`
[INFO] [stdout] ...
[INFO] [stdout]  88 | impl<T> From<&'_ mut Spanned<T>> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<&mut pos::Spanned<T>>`
[INFO] [stdout]     = note: required for `pos::FilePos` to implement `Into<pos::Span>`
[INFO] [stdout] note: required by a bound in `tokens::VariableKind::at`
[INFO] [stdout]    --> src/tokens/mod.rs:86:32
[INFO] [stdout]     |
[INFO] [stdout]  86 |     pub fn at(self, span: impl Into<Span>) -> Variable {
[INFO] [stdout]     |                                ^^^^^^^^^^ required by this bound in `VariableKind::at`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `pos::Span: From<pos::FilePos>` is not satisfied
[INFO] [stdout]    --> src/debugger/runner.rs:277:66
[INFO] [stdout]     |
[INFO] [stdout] 277 |                     let var = VariableKind::GlobalPreDef(pdv).at(FilePos::default());
[INFO] [stdout]     |                                                               -- ^^^^^^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |                                                               |
[INFO] [stdout]     |                                                               required by a bound introduced by this call
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<pos::FilePos>` is not implemented for `pos::Span`
[INFO] [stdout]    --> src/pos.rs:52:1
[INFO] [stdout]     |
[INFO] [stdout]  52 | pub struct Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout] help: `pos::Span` implements trait `From<T>`
[INFO] [stdout]    --> src/pos.rs:70:1
[INFO] [stdout]     |
[INFO] [stdout]  70 | impl From<(FilePos, FilePos)> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<(pos::FilePos, pos::FilePos)>`
[INFO] [stdout] ...
[INFO] [stdout]  76 | impl<T> From<Spanned<T>> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<pos::Spanned<T>>`
[INFO] [stdout] ...
[INFO] [stdout]  82 | impl<T> From<&'_ Spanned<T>> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<&pos::Spanned<T>>`
[INFO] [stdout] ...
[INFO] [stdout]  88 | impl<T> From<&'_ mut Spanned<T>> for Span {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `From<&mut pos::Spanned<T>>`
[INFO] [stdout]     = note: required for `pos::FilePos` to implement `Into<pos::Span>`
[INFO] [stdout] note: required by a bound in `tokens::VariableKind::at`
[INFO] [stdout]    --> src/tokens/mod.rs:86:32
[INFO] [stdout]     |
[INFO] [stdout]  86 |     pub fn at(self, span: impl Into<Span>) -> Variable {
[INFO] [stdout]     |                                ^^^^^^^^^^ required by this bound in `VariableKind::at`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `kind` on type `&tokens::Variable`
[INFO] [stdout]    --> src/debugger/turtle.rs:122:20
[INFO] [stdout]     |
[INFO] [stdout] 122 |         match &var.kind {
[INFO] [stdout]     |                    ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available field is: `0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `usize` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/turtle.rs:128:26
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 .get_var(*id, *ty)
[INFO] [stdout]     |                          ^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `values::ValType` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/turtle.rs:128:31
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 .get_var(*id, *ty)
[INFO] [stdout]     |                               ^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `usize` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/turtle.rs:130:75
[INFO] [stdout]     |
[INFO] [stdout] 130 |             VariableKind::Global(id, ty) => ctx.vars.borrow_mut().get_var(*id, *ty).clone(),
[INFO] [stdout]     |                                                                           ^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `values::ValType` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/turtle.rs:130:80
[INFO] [stdout]     |
[INFO] [stdout] 130 |             VariableKind::Global(id, ty) => ctx.vars.borrow_mut().get_var(*id, *ty).clone(),
[INFO] [stdout]     |                                                                                ^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `predef_vars::PredefVar` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/turtle.rs:140:41
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 _ => return ctx.get_var(*pdv),
[INFO] [stdout]     |                                         ^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `kind` on type `&tokens::Variable`
[INFO] [stdout]    --> src/debugger/turtle.rs:146:20
[INFO] [stdout]     |
[INFO] [stdout] 146 |         match &var.kind {
[INFO] [stdout]     |                    ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available field is: `0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `usize` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/turtle.rs:147:87
[INFO] [stdout]     |
[INFO] [stdout] 147 |             VariableKind::Local(id, _) => self.stack.last_mut().unwrap().vars.set_var(*id, val),
[INFO] [stdout]     |                                                                                       ^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `usize` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/turtle.rs:148:74
[INFO] [stdout]     |
[INFO] [stdout] 148 |             VariableKind::Global(id, _) => ctx.vars.borrow_mut().set_var(*id, val),
[INFO] [stdout]     |                                                                          ^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `predef_vars::PredefVar` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/turtle.rs:159:34
[INFO] [stdout]     |
[INFO] [stdout] 159 |                 _ => ctx.set_var(*pdv, val),
[INFO] [stdout]     |                                  ^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `kind` on type `&tokens::Variable`
[INFO] [stdout]    --> src/debugger/turtle.rs:122:20
[INFO] [stdout]     |
[INFO] [stdout] 122 |         match &var.kind {
[INFO] [stdout]     |                    ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available field is: `0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `usize` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/turtle.rs:128:26
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 .get_var(*id, *ty)
[INFO] [stdout]     |                          ^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `values::ValType` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/turtle.rs:128:31
[INFO] [stdout]     |
[INFO] [stdout] 128 |                 .get_var(*id, *ty)
[INFO] [stdout]     |                               ^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `usize` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/turtle.rs:130:75
[INFO] [stdout]     |
[INFO] [stdout] 130 |             VariableKind::Global(id, ty) => ctx.vars.borrow_mut().get_var(*id, *ty).clone(),
[INFO] [stdout]     |                                                                           ^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `values::ValType` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/turtle.rs:130:80
[INFO] [stdout]     |
[INFO] [stdout] 130 |             VariableKind::Global(id, ty) => ctx.vars.borrow_mut().get_var(*id, *ty).clone(),
[INFO] [stdout]     |                                                                                ^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `predef_vars::PredefVar` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/turtle.rs:140:41
[INFO] [stdout]     |
[INFO] [stdout] 140 |                 _ => return ctx.get_var(*pdv),
[INFO] [stdout]     |                                         ^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0609]: no field `kind` on type `&tokens::Variable`
[INFO] [stdout]    --> src/debugger/turtle.rs:146:20
[INFO] [stdout]     |
[INFO] [stdout] 146 |         match &var.kind {
[INFO] [stdout]     |                    ^^^^ unknown field
[INFO] [stdout]     |
[INFO] [stdout]     = note: available field is: `0`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `usize` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/turtle.rs:147:87
[INFO] [stdout]     |
[INFO] [stdout] 147 |             VariableKind::Local(id, _) => self.stack.last_mut().unwrap().vars.set_var(*id, val),
[INFO] [stdout]     |                                                                                       ^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `usize` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/turtle.rs:148:74
[INFO] [stdout]     |
[INFO] [stdout] 148 |             VariableKind::Global(id, _) => ctx.vars.borrow_mut().set_var(*id, val),
[INFO] [stdout]     |                                                                          ^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0614]: type `predef_vars::PredefVar` cannot be dereferenced
[INFO] [stdout]    --> src/debugger/turtle.rs:159:34
[INFO] [stdout]     |
[INFO] [stdout] 159 |                 _ => ctx.set_var(*pdv, val),
[INFO] [stdout]     |                                  ^^^^ can't be dereferenced
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/prog/parser/statements.rs:20:24
[INFO] [stdout]    |
[INFO] [stdout] 20 |             return Err(self.unexpected_token(TokenExpectation::Statement));
[INFO] [stdout]    |                    --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]               found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]   --> src/prog/parser/statements.rs:20:20
[INFO] [stdout]    |
[INFO] [stdout] 20 |             return Err(self.unexpected_token(TokenExpectation::Statement));
[INFO] [stdout]    |                    ^^^^--------------------------------------------------^
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/prog/parser/statements.rs:40:36
[INFO] [stdout]    |
[INFO] [stdout] 40 |                         return Err(ParseError::WriteToReadOnly(pdv).with_span(var.0.get_span()));
[INFO] [stdout]    |                                --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]    |                                |
[INFO] [stdout]    |                                arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]               found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]   --> src/prog/parser/statements.rs:40:32
[INFO] [stdout]    |
[INFO] [stdout] 40 |                         return Err(ParseError::WriteToReadOnly(pdv).with_span(var.0.get_span()));
[INFO] [stdout]    |                                ^^^^------------------------------------------------------------^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: `match` arms have incompatible types
[INFO] [stdout]   --> src/prog/parser/statements.rs:88:18
[INFO] [stdout]    |
[INFO] [stdout] 24 |           Ok(match kw {
[INFO] [stdout]    |  ____________-
[INFO] [stdout] 25 | |             Keyword::Walk => self.parse_move(true),
[INFO] [stdout] 26 | |             Keyword::Jump => self.parse_move(false),
[INFO] [stdout] 27 | |             Keyword::Turn => self.parse_turn(),
[INFO] [stdout] ...  |
[INFO] [stdout] 86 | |                 Ok(Statement::RepeatLoop(self.parse_expr()?, stmts))
[INFO] [stdout]    | |                 ---------------------------------------------------- this and all prior arms are found to be of type `Result<tokens::statements::Statement, Vec<pos::Spanned<ParseError>>>`
[INFO] [stdout] 87 | |             }
[INFO] [stdout] 88 | |             c => Err(ParseError::UnknownStatement(c).with_span(span)),
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result<Statement, Vec<Spanned<...>>>`, found `Result<_, Spanned<ParseError>>`
[INFO] [stdout] 89 | |         }?
[INFO] [stdout]    | |_________- `match` arms have incompatible types
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `Result<tokens::statements::Statement, Vec<pos::Spanned<_>>>`
[INFO] [stdout]               found enum `Result<_, pos::Spanned<_>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/prog/parser/mod.rs:51:22
[INFO] [stdout]    |
[INFO] [stdout] 51 |             _ => Err(self.unexpected_last_token(TokenExpectation::BlockStart)),
[INFO] [stdout]    |                  --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]               found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]   --> src/prog/parser/mod.rs:51:18
[INFO] [stdout]    |
[INFO] [stdout] 51 |             _ => Err(self.unexpected_last_token(TokenExpectation::BlockStart)),
[INFO] [stdout]    |                  ^^^^--------------------------------------------------------^
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/prog/parser/statements.rs:20:24
[INFO] [stdout]    |
[INFO] [stdout] 20 |             return Err(self.unexpected_token(TokenExpectation::Statement));
[INFO] [stdout]    |                    --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]    |                    |
[INFO] [stdout]    |                    arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]               found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]   --> src/prog/parser/statements.rs:20:20
[INFO] [stdout]    |
[INFO] [stdout] 20 |             return Err(self.unexpected_token(TokenExpectation::Statement));
[INFO] [stdout]    |                    ^^^^--------------------------------------------------^
[INFO] [stdout]    |                        |
[INFO] [stdout]    |                        this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/prog/parser/mod.rs:84:17
[INFO] [stdout]    |
[INFO] [stdout] 84 |             Err(self.eof_err())
[INFO] [stdout]    |             --- ^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]    |             |
[INFO] [stdout]    |             arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]               found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]   --> src/prog/parser/mod.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 84 |             Err(self.eof_err())
[INFO] [stdout]    |             ^^^^--------------^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/prog/parser/statements.rs:40:36
[INFO] [stdout]    |
[INFO] [stdout] 40 |                         return Err(ParseError::WriteToReadOnly(pdv).with_span(var.0.get_span()));
[INFO] [stdout]    |                                --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]    |                                |
[INFO] [stdout]    |                                arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]               found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]   --> src/prog/parser/statements.rs:40:32
[INFO] [stdout]    |
[INFO] [stdout] 40 |                         return Err(ParseError::WriteToReadOnly(pdv).with_span(var.0.get_span()));
[INFO] [stdout]    |                                ^^^^------------------------------------------------------------^
[INFO] [stdout]    |                                    |
[INFO] [stdout]    |                                    this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: `match` arms have incompatible types
[INFO] [stdout]    --> src/prog/parser/mod.rs:111:25
[INFO] [stdout]     |
[INFO] [stdout] 109 | /         match self.next_token() {
[INFO] [stdout] 110 | |             Ok(t) => ParseError::UnexpectedToken(t, expected).with_span(pos),
[INFO] [stdout]     | |                      ------------------------------------------------------- this is found to be of type `pos::Spanned<ParseError>`
[INFO] [stdout] 111 | |             Err(eof) => eof,
[INFO] [stdout]     | |                         ^^^ expected `Spanned<ParseError>`, found `Vec<Spanned<ParseError>>`
[INFO] [stdout] 112 | |         }
[INFO] [stdout]     | |_________- `match` arms have incompatible types
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `pos::Spanned<_>`
[INFO] [stdout]                found struct `Vec<pos::Spanned<_>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:132:17
[INFO] [stdout]     |
[INFO] [stdout] 132 |             Err(self.unexpected_token(TokenExpectation::ExactKeyword(kw)))
[INFO] [stdout]     |             --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:132:13
[INFO] [stdout]     |
[INFO] [stdout] 132 |             Err(self.unexpected_token(TokenExpectation::ExactKeyword(kw)))
[INFO] [stdout]     |             ^^^^---------------------------------------------------------^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:140:24
[INFO] [stdout]     |
[INFO] [stdout] 140 |             return Err(self.unexpected_token(TokenExpectation::AnyIdentifier));
[INFO] [stdout]     |                    --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:140:20
[INFO] [stdout]     |
[INFO] [stdout] 140 |             return Err(self.unexpected_token(TokenExpectation::AnyIdentifier));
[INFO] [stdout]     |                    ^^^^------------------------------------------------------^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: `match` arms have incompatible types
[INFO] [stdout]   --> src/prog/parser/statements.rs:88:18
[INFO] [stdout]    |
[INFO] [stdout] 24 |           Ok(match kw {
[INFO] [stdout]    |  ____________-
[INFO] [stdout] 25 | |             Keyword::Walk => self.parse_move(true),
[INFO] [stdout] 26 | |             Keyword::Jump => self.parse_move(false),
[INFO] [stdout] 27 | |             Keyword::Turn => self.parse_turn(),
[INFO] [stdout] ...  |
[INFO] [stdout] 86 | |                 Ok(Statement::RepeatLoop(self.parse_expr()?, stmts))
[INFO] [stdout]    | |                 ---------------------------------------------------- this and all prior arms are found to be of type `Result<tokens::statements::Statement, Vec<pos::Spanned<ParseError>>>`
[INFO] [stdout] 87 | |             }
[INFO] [stdout] 88 | |             c => Err(ParseError::UnknownStatement(c).with_span(span)),
[INFO] [stdout]    | |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result<Statement, Vec<Spanned<...>>>`, found `Result<_, Spanned<ParseError>>`
[INFO] [stdout] 89 | |         }?
[INFO] [stdout]    | |_________- `match` arms have incompatible types
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected enum `Result<tokens::statements::Statement, Vec<pos::Spanned<_>>>`
[INFO] [stdout]               found enum `Result<_, pos::Spanned<_>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:158:17
[INFO] [stdout]     |
[INFO] [stdout] 158 |             Err(self.unexpected_token(TokenExpectation::ExactSymbol(c)))
[INFO] [stdout]     |             --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |             Err(self.unexpected_token(TokenExpectation::ExactSymbol(c)))
[INFO] [stdout]     |             ^^^^-------------------------------------------------------^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:172:17
[INFO] [stdout]     |
[INFO] [stdout] 172 |             Err(ParseError::ConflictingIdentifiers(ident, *old_kind, kind).with_span(pos))
[INFO] [stdout]     |             --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:172:13
[INFO] [stdout]     |
[INFO] [stdout] 172 |             Err(ParseError::ConflictingIdentifiers(ident, *old_kind, kind).with_span(pos))
[INFO] [stdout]     |             ^^^^-------------------------------------------------------------------------^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:180:9
[INFO] [stdout]     |
[INFO] [stdout] 179 |       fn expect_feature(&mut self, feature: Feature) -> PRes<()> {
[INFO] [stdout]     |                                                         -------- expected `Result<(), Vec<pos::Spanned<ParseError>>>` because of return type
[INFO] [stdout] 180 | /         self.features
[INFO] [stdout] 181 | |             .expect(feature)
[INFO] [stdout] 182 | |             .map_err(|f| ParseError::MissingFeature(f).with_span(self.curr_span()))
[INFO] [stdout]     | |___________________________________________________________________________________^ expected `Result<(), Vec<Spanned<ParseError>>>`, found `Result<(), Spanned<ParseError>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `Result<_, Vec<pos::Spanned<_>>>`
[INFO] [stdout]                found enum `Result<_, pos::Spanned<_>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:193:24
[INFO] [stdout]     |
[INFO] [stdout] 193 |             return Err(self.unexpected_last_token(TokenExpectation::GlobalVar));
[INFO] [stdout]     |                    --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:193:20
[INFO] [stdout]     |
[INFO] [stdout] 193 |             return Err(self.unexpected_last_token(TokenExpectation::GlobalVar));
[INFO] [stdout]     |                    ^^^^-------------------------------------------------------^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:198:24
[INFO] [stdout]     |
[INFO] [stdout] 198 |             return Err(ParseError::ParamNotConst(id).with_span(val.0.get_span()));
[INFO] [stdout]     |                    --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:198:20
[INFO] [stdout]     |
[INFO] [stdout] 198 |             return Err(ParseError::ParamNotConst(id).with_span(val.0.get_span()));
[INFO] [stdout]     |                    ^^^^---------------------------------------------------------^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this enum variant takes 1 argument but 3 arguments were supplied
[INFO] [stdout]    --> src/prog/parser/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 200 |         Ok(ParseToken::Param(id, val, begin))
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^ --  ---  ----- unexpected argument #3 of type `pos::Span`
[INFO] [stdout]     |                              |   |
[INFO] [stdout]     |                              |   unexpected argument #2 of type `values::Value`
[INFO] [stdout]     |                              expected `Param`, found `usize`
[INFO] [stdout]     |
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/tokens/mod.rs:58:5
[INFO] [stdout]     |
[INFO] [stdout]  58 |     Param(Param),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] help: remove the extra arguments
[INFO] [stdout]     |
[INFO] [stdout] 200 -         Ok(ParseToken::Param(id, val, begin))
[INFO] [stdout] 200 +         Ok(ParseToken::Param(/* Param */))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]   --> src/prog/parser/test/mod.rs:33:27
[INFO] [stdout]    |
[INFO] [stdout] 33 |           let mut $parser = crate::prog::Parser::new(
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |               &mut ident,
[INFO] [stdout] 35 |               ltokens,
[INFO] [stdout]    |               ------- expected `&mut features::FeatureConf`, found `Vec<pos::Spanned<lexer::LexToken>>`
[INFO] [stdout] 36 |               &mut feat,
[INFO] [stdout]    |               --------- expected `Vec<pos::Spanned<lexer::LexToken>>`, found `&mut features::FeatureConf`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/prog/parser/test/exprs.rs:8:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | /     parse_this!(
[INFO] [stdout]  9 | |         parser =>
[INFO] [stdout] 10 | |         IntLiteral(3),
[INFO] [stdout] 11 | |         Symbol('+'),
[INFO] [stdout] 12 | |     );
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/prog/parser/mod.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout]    = note: this error originates in the macro `parse_this` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: swap these arguments
[INFO] [stdout]    |
[INFO] [stdout] 33 ~         let mut $parser = crate::prog::Parser::new(
[INFO] [stdout] 34 +             &mut ident,
[INFO] [stdout] 35 +             &mut feat,
[INFO] [stdout] 36 +             ltokens,
[INFO] [stdout] 37 ~         );
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:208:29
[INFO] [stdout]     |
[INFO] [stdout] 208 |             _ => return Err(self.unexpected_last_token(TokenExpectation::EventKind)),
[INFO] [stdout]     |                         --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:208:25
[INFO] [stdout]     |
[INFO] [stdout] 208 |             _ => return Err(self.unexpected_last_token(TokenExpectation::EventKind)),
[INFO] [stdout]     |                         ^^^^-------------------------------------------------------^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: can't compare `Vec<pos::Spanned<ParseError>>` with `pos::Spanned<ParseError>`
[INFO] [stdout]   --> src/prog/parser/test/exprs.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 | /     assert_eq!(
[INFO] [stdout] 15 | |         res,
[INFO] [stdout] 16 | |         ParseError::UnexpectedEnd.with_span((FilePos::new(2, 1), FilePos::new(2, 1)))
[INFO] [stdout] 17 | |     );
[INFO] [stdout]    | |_____^ no implementation for `Vec<pos::Spanned<ParseError>> == pos::Spanned<ParseError>`
[INFO] [stdout]    |
[INFO] [stdout]    = help: the trait `PartialEq<pos::Spanned<ParseError>>` is not implemented for `Vec<pos::Spanned<ParseError>>`
[INFO] [stdout]    = help: the following other types implement trait `PartialEq<Rhs>`:
[INFO] [stdout]              `Vec<T, A1>` implements `PartialEq<Vec<U, A2>>`
[INFO] [stdout]              `Vec<T, A>` implements `PartialEq<&[U; N]>`
[INFO] [stdout]              `Vec<T, A>` implements `PartialEq<&[U]>`
[INFO] [stdout]              `Vec<T, A>` implements `PartialEq<&mut [U]>`
[INFO] [stdout]              `Vec<T, A>` implements `PartialEq<[U; N]>`
[INFO] [stdout]              `Vec<T, A>` implements `PartialEq<[U]>`
[INFO] [stdout]              `Vec<u8>` implements `PartialEq<ByteStr>`
[INFO] [stdout]              `Vec<u8>` implements `PartialEq<ByteString>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:263:29
[INFO] [stdout]     |
[INFO] [stdout] 263 |             _ => return Err(self.unexpected_last_token(TokenExpectation::ValType)),
[INFO] [stdout]     |                         --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:263:25
[INFO] [stdout]     |
[INFO] [stdout] 263 |             _ => return Err(self.unexpected_last_token(TokenExpectation::ValType)),
[INFO] [stdout]     |                         ^^^^-----------------------------------------------------^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]   --> src/prog/parser/test/mod.rs:33:27
[INFO] [stdout]    |
[INFO] [stdout] 33 |           let mut $parser = crate::prog::Parser::new(
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |               &mut ident,
[INFO] [stdout] 35 |               ltokens,
[INFO] [stdout]    |               ------- expected `&mut features::FeatureConf`, found `Vec<pos::Spanned<lexer::LexToken>>`
[INFO] [stdout] 36 |               &mut feat,
[INFO] [stdout]    |               --------- expected `Vec<pos::Spanned<lexer::LexToken>>`, found `&mut features::FeatureConf`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/prog/parser/test/exprs.rs:23:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | /     parse_this!(
[INFO] [stdout] 24 | |         parser =>
[INFO] [stdout] 25 | |         IntLiteral(3),
[INFO] [stdout] 26 | |         Symbol('+'),
[INFO] [stdout] ...  |
[INFO] [stdout] 43 | |         Symbol(')'),
[INFO] [stdout] 44 | |     );
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/prog/parser/mod.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout]    = note: this error originates in the macro `parse_this` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: swap these arguments
[INFO] [stdout]    |
[INFO] [stdout] 33 ~         let mut $parser = crate::prog::Parser::new(
[INFO] [stdout] 34 +             &mut ident,
[INFO] [stdout] 35 +             &mut feat,
[INFO] [stdout] 36 +             ltokens,
[INFO] [stdout] 37 ~         );
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:318:17
[INFO] [stdout]     |
[INFO] [stdout] 317 |               t => Err(
[INFO] [stdout]     |                    --- arguments to this enum variant are incorrect
[INFO] [stdout] 318 | /                 ParseError::UnexpectedToken(t, TokenExpectation::AnyIdentifier)
[INFO] [stdout] 319 | |                     .with_span(self.curr_span()),
[INFO] [stdout]     | |________________________________________________^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:317:18
[INFO] [stdout]     |
[INFO] [stdout] 317 |                t => Err(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 318 | |/                 ParseError::UnexpectedToken(t, TokenExpectation::AnyIdentifier)
[INFO] [stdout] 319 | ||                     .with_span(self.curr_span()),
[INFO] [stdout]     | ||________________________________________________- this argument influences the type of `Err`
[INFO] [stdout] 320 | |              ),
[INFO] [stdout]     | |______________^
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]    --> src/prog/parser/test/mod.rs:33:27
[INFO] [stdout]     |
[INFO] [stdout]  33 |           let mut $parser = crate::prog::Parser::new(
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  34 |               &mut ident,
[INFO] [stdout]  35 |               ltokens,
[INFO] [stdout]     |               ------- expected `&mut features::FeatureConf`, found `Vec<pos::Spanned<lexer::LexToken>>`
[INFO] [stdout]  36 |               &mut feat,
[INFO] [stdout]     |               --------- expected `Vec<pos::Spanned<lexer::LexToken>>`, found `&mut features::FeatureConf`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/prog/parser/test/exprs.rs:86:5
[INFO] [stdout]     |
[INFO] [stdout]  86 | /     parse_this!(
[INFO] [stdout]  87 | |         parser =>
[INFO] [stdout]  88 | |         Keyword(Num),
[INFO] [stdout]  89 | |         Symbol('('),
[INFO] [stdout] ...   |
[INFO] [stdout] 106 | |         Symbol(')'),
[INFO] [stdout] 107 | |     );
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/prog/parser/mod.rs:31:12
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout]     = note: this error originates in the macro `parse_this` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: swap these arguments
[INFO] [stdout]     |
[INFO] [stdout]  33 ~         let mut $parser = crate::prog::Parser::new(
[INFO] [stdout]  34 +             &mut ident,
[INFO] [stdout]  35 +             &mut feat,
[INFO] [stdout]  36 +             ltokens,
[INFO] [stdout]  37 ~         );
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:451:32
[INFO] [stdout]     |
[INFO] [stdout] 451 |                     return Err(self.unexpected_last_token(TokenExpectation::PredefFunc));
[INFO] [stdout]     |                            --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:451:28
[INFO] [stdout]     |
[INFO] [stdout] 451 |                     return Err(self.unexpected_last_token(TokenExpectation::PredefFunc));
[INFO] [stdout]     |                            ^^^^--------------------------------------------------------^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]    --> src/prog/parser/test/mod.rs:33:27
[INFO] [stdout]     |
[INFO] [stdout]  33 |           let mut $parser = crate::prog::Parser::new(
[INFO] [stdout]     |                             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  34 |               &mut ident,
[INFO] [stdout]  35 |               ltokens,
[INFO] [stdout]     |               ------- expected `&mut features::FeatureConf`, found `Vec<pos::Spanned<lexer::LexToken>>`
[INFO] [stdout]  36 |               &mut feat,
[INFO] [stdout]     |               --------- expected `Vec<pos::Spanned<lexer::LexToken>>`, found `&mut features::FeatureConf`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/prog/parser/test/exprs.rs:144:5
[INFO] [stdout]     |
[INFO] [stdout] 144 | /     parse_this!(
[INFO] [stdout] 145 | |         parser (Calc) =>
[INFO] [stdout] 146 | |         Identifier(0),
[INFO] [stdout] 147 | |         Symbol('('),
[INFO] [stdout] ...   |
[INFO] [stdout] 170 | |         Symbol(')'),
[INFO] [stdout] 171 | |     );
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]    --> src/prog/parser/mod.rs:31:12
[INFO] [stdout]     |
[INFO] [stdout]  31 |     pub fn new(
[INFO] [stdout]     |            ^^^
[INFO] [stdout]     = note: this error originates in the macro `parse_this` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: swap these arguments
[INFO] [stdout]     |
[INFO] [stdout]  33 ~         let mut $parser = crate::prog::Parser::new(
[INFO] [stdout]  34 +             &mut ident,
[INFO] [stdout]  35 +             &mut feat,
[INFO] [stdout]  36 +             ltokens,
[INFO] [stdout]  37 ~         );
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:465:28
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 return Err(ParseError::UnexpectedToken(t, TokenExpectation::Expr).with_span(start));
[INFO] [stdout]     |                        --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:465:24
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 return Err(ParseError::UnexpectedToken(t, TokenExpectation::Expr).with_span(start));
[INFO] [stdout]     |                        ^^^^-----------------------------------------------------------------------^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:485:24
[INFO] [stdout]     |
[INFO] [stdout] 485 |             return Err(ParseError::ArgCount(args.len(), c).with_span(pos));
[INFO] [stdout]     |                    --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:485:20
[INFO] [stdout]     |
[INFO] [stdout] 485 |             return Err(ParseError::ArgCount(args.len(), c).with_span(pos));
[INFO] [stdout]     |                    ^^^^--------------------------------------------------^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]   --> src/prog/parser/test/mod.rs:33:27
[INFO] [stdout]    |
[INFO] [stdout] 33 |           let mut $parser = crate::prog::Parser::new(
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |               &mut ident,
[INFO] [stdout] 35 |               ltokens,
[INFO] [stdout]    |               ------- expected `&mut features::FeatureConf`, found `Vec<pos::Spanned<lexer::LexToken>>`
[INFO] [stdout] 36 |               &mut feat,
[INFO] [stdout]    |               --------- expected `Vec<pos::Spanned<lexer::LexToken>>`, found `&mut features::FeatureConf`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/prog/parser/test/statements.rs:3:5
[INFO] [stdout]    |
[INFO] [stdout]  3 | /     parse_this!(
[INFO] [stdout]  4 | |         parser (LocalVar) =>
[INFO] [stdout]  5 | |         Keyword(If),
[INFO] [stdout]  6 | |         Identifier(0),
[INFO] [stdout] ...  |
[INFO] [stdout] 11 | |         Keyword(Endif),
[INFO] [stdout] 12 | |     );
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/prog/parser/mod.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout]    = note: this error originates in the macro `parse_this` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: swap these arguments
[INFO] [stdout]    |
[INFO] [stdout] 33 ~         let mut $parser = crate::prog::Parser::new(
[INFO] [stdout] 34 +             &mut ident,
[INFO] [stdout] 35 +             &mut feat,
[INFO] [stdout] 36 +             ltokens,
[INFO] [stdout] 37 ~         );
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: arguments to this function are incorrect
[INFO] [stdout]   --> src/prog/parser/test/mod.rs:33:27
[INFO] [stdout]    |
[INFO] [stdout] 33 |           let mut $parser = crate::prog::Parser::new(
[INFO] [stdout]    |                             ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 34 |               &mut ident,
[INFO] [stdout] 35 |               ltokens,
[INFO] [stdout]    |               ------- expected `&mut features::FeatureConf`, found `Vec<pos::Spanned<lexer::LexToken>>`
[INFO] [stdout] 36 |               &mut feat,
[INFO] [stdout]    |               --------- expected `Vec<pos::Spanned<lexer::LexToken>>`, found `&mut features::FeatureConf`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/prog/parser/test/statements.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 | /     parse_this!(
[INFO] [stdout] 33 | |         parser (LocalVar) =>
[INFO] [stdout] 34 | |         Keyword(If),
[INFO] [stdout] 35 | |         Keyword(Not),
[INFO] [stdout] ...  |
[INFO] [stdout] 47 | |         Keyword(Endif),
[INFO] [stdout] 48 | |     );
[INFO] [stdout]    | |_____- in this macro invocation
[INFO] [stdout]    |
[INFO] [stdout] note: associated function defined here
[INFO] [stdout]   --> src/prog/parser/mod.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 31 |     pub fn new(
[INFO] [stdout]    |            ^^^
[INFO] [stdout]    = note: this error originates in the macro `parse_this` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: swap these arguments
[INFO] [stdout]    |
[INFO] [stdout] 33 ~         let mut $parser = crate::prog::Parser::new(
[INFO] [stdout] 34 +             &mut ident,
[INFO] [stdout] 35 +             &mut feat,
[INFO] [stdout] 36 +             ltokens,
[INFO] [stdout] 37 ~         );
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/prog/parser/mod.rs:51:22
[INFO] [stdout]    |
[INFO] [stdout] 51 |             _ => Err(self.unexpected_last_token(TokenExpectation::BlockStart)),
[INFO] [stdout]    |                  --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]    |                  |
[INFO] [stdout]    |                  arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]               found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]   --> src/prog/parser/mod.rs:51:18
[INFO] [stdout]    |
[INFO] [stdout] 51 |             _ => Err(self.unexpected_last_token(TokenExpectation::BlockStart)),
[INFO] [stdout]    |                  ^^^^--------------------------------------------------------^
[INFO] [stdout]    |                      |
[INFO] [stdout]    |                      this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/prog/parser/mod.rs:84:17
[INFO] [stdout]    |
[INFO] [stdout] 84 |             Err(self.eof_err())
[INFO] [stdout]    |             --- ^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]    |             |
[INFO] [stdout]    |             arguments to this enum variant are incorrect
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]               found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]   --> src/prog/parser/mod.rs:84:13
[INFO] [stdout]    |
[INFO] [stdout] 84 |             Err(self.eof_err())
[INFO] [stdout]    |             ^^^^--------------^
[INFO] [stdout]    |                 |
[INFO] [stdout]    |                 this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]   --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: `match` arms have incompatible types
[INFO] [stdout]    --> src/prog/parser/mod.rs:111:25
[INFO] [stdout]     |
[INFO] [stdout] 109 | /         match self.next_token() {
[INFO] [stdout] 110 | |             Ok(t) => ParseError::UnexpectedToken(t, expected).with_span(pos),
[INFO] [stdout]     | |                      ------------------------------------------------------- this is found to be of type `pos::Spanned<ParseError>`
[INFO] [stdout] 111 | |             Err(eof) => eof,
[INFO] [stdout]     | |                         ^^^ expected `Spanned<ParseError>`, found `Vec<Spanned<ParseError>>`
[INFO] [stdout] 112 | |         }
[INFO] [stdout]     | |_________- `match` arms have incompatible types
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `pos::Spanned<_>`
[INFO] [stdout]                found struct `Vec<pos::Spanned<_>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:132:17
[INFO] [stdout]     |
[INFO] [stdout] 132 |             Err(self.unexpected_token(TokenExpectation::ExactKeyword(kw)))
[INFO] [stdout]     |             --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:132:13
[INFO] [stdout]     |
[INFO] [stdout] 132 |             Err(self.unexpected_token(TokenExpectation::ExactKeyword(kw)))
[INFO] [stdout]     |             ^^^^---------------------------------------------------------^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:140:24
[INFO] [stdout]     |
[INFO] [stdout] 140 |             return Err(self.unexpected_token(TokenExpectation::AnyIdentifier));
[INFO] [stdout]     |                    --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:140:20
[INFO] [stdout]     |
[INFO] [stdout] 140 |             return Err(self.unexpected_token(TokenExpectation::AnyIdentifier));
[INFO] [stdout]     |                    ^^^^------------------------------------------------------^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:158:17
[INFO] [stdout]     |
[INFO] [stdout] 158 |             Err(self.unexpected_token(TokenExpectation::ExactSymbol(c)))
[INFO] [stdout]     |             --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:158:13
[INFO] [stdout]     |
[INFO] [stdout] 158 |             Err(self.unexpected_token(TokenExpectation::ExactSymbol(c)))
[INFO] [stdout]     |             ^^^^-------------------------------------------------------^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:172:17
[INFO] [stdout]     |
[INFO] [stdout] 172 |             Err(ParseError::ConflictingIdentifiers(ident, *old_kind, kind).with_span(pos))
[INFO] [stdout]     |             --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |             |
[INFO] [stdout]     |             arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:172:13
[INFO] [stdout]     |
[INFO] [stdout] 172 |             Err(ParseError::ConflictingIdentifiers(ident, *old_kind, kind).with_span(pos))
[INFO] [stdout]     |             ^^^^-------------------------------------------------------------------------^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:180:9
[INFO] [stdout]     |
[INFO] [stdout] 179 |       fn expect_feature(&mut self, feature: Feature) -> PRes<()> {
[INFO] [stdout]     |                                                         -------- expected `Result<(), Vec<pos::Spanned<ParseError>>>` because of return type
[INFO] [stdout] 180 | /         self.features
[INFO] [stdout] 181 | |             .expect(feature)
[INFO] [stdout] 182 | |             .map_err(|f| ParseError::MissingFeature(f).with_span(self.curr_span()))
[INFO] [stdout]     | |___________________________________________________________________________________^ expected `Result<(), Vec<Spanned<ParseError>>>`, found `Result<(), Spanned<ParseError>>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected enum `Result<_, Vec<pos::Spanned<_>>>`
[INFO] [stdout]                found enum `Result<_, pos::Spanned<_>>`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:193:24
[INFO] [stdout]     |
[INFO] [stdout] 193 |             return Err(self.unexpected_last_token(TokenExpectation::GlobalVar));
[INFO] [stdout]     |                    --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:193:20
[INFO] [stdout]     |
[INFO] [stdout] 193 |             return Err(self.unexpected_last_token(TokenExpectation::GlobalVar));
[INFO] [stdout]     |                    ^^^^-------------------------------------------------------^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:198:24
[INFO] [stdout]     |
[INFO] [stdout] 198 |             return Err(ParseError::ParamNotConst(id).with_span(val.0.get_span()));
[INFO] [stdout]     |                    --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:198:20
[INFO] [stdout]     |
[INFO] [stdout] 198 |             return Err(ParseError::ParamNotConst(id).with_span(val.0.get_span()));
[INFO] [stdout]     |                    ^^^^---------------------------------------------------------^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this enum variant takes 1 argument but 3 arguments were supplied
[INFO] [stdout]    --> src/prog/parser/mod.rs:200:12
[INFO] [stdout]     |
[INFO] [stdout] 200 |         Ok(ParseToken::Param(id, val, begin))
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^ --  ---  ----- unexpected argument #3 of type `pos::Span`
[INFO] [stdout]     |                              |   |
[INFO] [stdout]     |                              |   unexpected argument #2 of type `values::Value`
[INFO] [stdout]     |                              expected `Param`, found `usize`
[INFO] [stdout]     |
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> src/tokens/mod.rs:58:5
[INFO] [stdout]     |
[INFO] [stdout]  58 |     Param(Param),
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] help: remove the extra arguments
[INFO] [stdout]     |
[INFO] [stdout] 200 -         Ok(ParseToken::Param(id, val, begin))
[INFO] [stdout] 200 +         Ok(ParseToken::Param(/* Param */))
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:208:29
[INFO] [stdout]     |
[INFO] [stdout] 208 |             _ => return Err(self.unexpected_last_token(TokenExpectation::EventKind)),
[INFO] [stdout]     |                         --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:208:25
[INFO] [stdout]     |
[INFO] [stdout] 208 |             _ => return Err(self.unexpected_last_token(TokenExpectation::EventKind)),
[INFO] [stdout]     |                         ^^^^-------------------------------------------------------^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:263:29
[INFO] [stdout]     |
[INFO] [stdout] 263 |             _ => return Err(self.unexpected_last_token(TokenExpectation::ValType)),
[INFO] [stdout]     |                         --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |                         |
[INFO] [stdout]     |                         arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:263:25
[INFO] [stdout]     |
[INFO] [stdout] 263 |             _ => return Err(self.unexpected_last_token(TokenExpectation::ValType)),
[INFO] [stdout]     |                         ^^^^-----------------------------------------------------^
[INFO] [stdout]     |                             |
[INFO] [stdout]     |                             this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:318:17
[INFO] [stdout]     |
[INFO] [stdout] 317 |               t => Err(
[INFO] [stdout]     |                    --- arguments to this enum variant are incorrect
[INFO] [stdout] 318 | /                 ParseError::UnexpectedToken(t, TokenExpectation::AnyIdentifier)
[INFO] [stdout] 319 | |                     .with_span(self.curr_span()),
[INFO] [stdout]     | |________________________________________________^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:317:18
[INFO] [stdout]     |
[INFO] [stdout] 317 |                t => Err(
[INFO] [stdout]     |  ___________________^
[INFO] [stdout] 318 | |/                 ParseError::UnexpectedToken(t, TokenExpectation::AnyIdentifier)
[INFO] [stdout] 319 | ||                     .with_span(self.curr_span()),
[INFO] [stdout]     | ||________________________________________________- this argument influences the type of `Err`
[INFO] [stdout] 320 | |              ),
[INFO] [stdout]     | |______________^
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:451:32
[INFO] [stdout]     |
[INFO] [stdout] 451 |                     return Err(self.unexpected_last_token(TokenExpectation::PredefFunc));
[INFO] [stdout]     |                            --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:451:28
[INFO] [stdout]     |
[INFO] [stdout] 451 |                     return Err(self.unexpected_last_token(TokenExpectation::PredefFunc));
[INFO] [stdout]     |                            ^^^^--------------------------------------------------------^
[INFO] [stdout]     |                                |
[INFO] [stdout]     |                                this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:465:28
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 return Err(ParseError::UnexpectedToken(t, TokenExpectation::Expr).with_span(start));
[INFO] [stdout]     |                        --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:465:24
[INFO] [stdout]     |
[INFO] [stdout] 465 |                 return Err(ParseError::UnexpectedToken(t, TokenExpectation::Expr).with_span(start));
[INFO] [stdout]     |                        ^^^^-----------------------------------------------------------------------^
[INFO] [stdout]     |                            |
[INFO] [stdout]     |                            this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]    --> src/prog/parser/mod.rs:485:24
[INFO] [stdout]     |
[INFO] [stdout] 485 |             return Err(ParseError::ArgCount(args.len(), c).with_span(pos));
[INFO] [stdout]     |                    --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Vec<Spanned<ParseError>>`, found `Spanned<ParseError>`
[INFO] [stdout]     |                    |
[INFO] [stdout]     |                    arguments to this enum variant are incorrect
[INFO] [stdout]     |
[INFO] [stdout]     = note: expected struct `Vec<pos::Spanned<_>>`
[INFO] [stdout]                found struct `pos::Spanned<_>`
[INFO] [stdout] help: the type constructed contains `pos::Spanned<ParseError>` due to the type of the argument passed
[INFO] [stdout]    --> src/prog/parser/mod.rs:485:20
[INFO] [stdout]     |
[INFO] [stdout] 485 |             return Err(ParseError::ArgCount(args.len(), c).with_span(pos));
[INFO] [stdout]     |                    ^^^^--------------------------------------------------^
[INFO] [stdout]     |                        |
[INFO] [stdout]     |                        this argument influences the type of `Err`
[INFO] [stdout] note: tuple variant defined here
[INFO] [stdout]    --> /rustc/622891a4e29178280638a6b63a8908bde2c0c854/library/core/src/result.rs:566:4
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0023, E0061, E0107, E0277, E0308, E0599, E0609, E0614.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0023`.
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0023, E0061, E0107, E0277, E0308, E0599, E0609, E0614.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0023`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `turtle` (lib test) due to 92 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error: could not compile `turtle` (lib) due to 85 previous errors
[INFO] running `Command { std: "docker" "inspect" "19a17e209a3ea58def3894be83c26a63e429c9292bd2b9a8293235f6d6194807", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "19a17e209a3ea58def3894be83c26a63e429c9292bd2b9a8293235f6d6194807", kill_on_drop: false }`
[INFO] [stdout] 19a17e209a3ea58def3894be83c26a63e429c9292bd2b9a8293235f6d6194807
